Hat weniger ein Feature wie tail --follow = name (-F)

41

Der Befehl lesskann verwendet werden, um tailin zu ersetzen

tail -f file

Funktionen wie die Handhabung der Binärausgabe und das Navigieren im Scrollback:

less +F file

Das +Präfix bedeutet "so tun, als würde ich das nach dem Start eingeben", und der Schlüssel Fbeginnt zu folgen.

Kann aber lessauch ersetzen

tail --follow=name file

was folgt, fileselbst wenn die eigentliche Datei gelöscht oder entfernt wird, wie eine Protokolldatei, in die verschoben wird file.log.1, und dann eine neue Datei mit demselben Namen wie die folgende Datei erstellt wird?

Volker Siegel
quelle
1
Versuchen Sie es mit less --follow-nameoderless --follow-name +F
don_crissti
@don_crissti Schön ... less --follow-name +Fist es - keine Ahnung, wie ich das verpasst habe - ich war mir ziemlich sicher, dass ich die Manpage nach follow... seltsam durchsucht habe . Mach eine Antwort!
Volker Siegel
Nun, einige weitere Nachforschungen haben ergeben, dass es hier bereits gefragt und beantwortet wurde , sodass ich es als Kommentar hinterlassen werde. Sie können die Antwort dort immer positiv bewerten.
don_crissti
@don_crissti Richtig ... außer dass Ihre richtige Antwort dort nicht gefunden wird - --follow-namewird beschrieben, aber +Fnie erwähnt, und ich denke, es ist ziemlich wichtig, weil es offensichtlich nicht allgemein bekannt ist.
Volker Siegel
Wenn Sie wegen einer Google-Suche hierher gekommen sind less follow, LESEN SIE DIE FRAGE. Es wird bereits beantwortet, wie lessÄnderungen an Folgedateien vorgenommen werden können!
Hubert Grzeskowiak

Antworten:

40

Ja, lesskann durch den Dateinamen folgen

Das Feature hat eine ziemlich undurchsichtige Syntax:

less --follow-name +F file.log

Mit weniger --follow-nameunterscheidet sich von der tailOption --follow=name.
Es wird nicht veranlasst less, der Datei zu folgen, sondern das Verhalten der Befehlstaste Finnerhalb von less basierend auf dem Dateinamen und nicht dem Dateideskriptor zu ändern.

Es gibt auch keine normale Option, um lessim Verfolgungsmodus zu starten .
Sie können jedoch die Befehlszeile verwenden, um Tastatureingaben vorzunehmen, die nach dem Start ausgeführt werden sollen, indem Sie ihnen das Präfix voranstellen +.
Wenn Sie die Modifikatoroption mit kombinieren +F, lesswird tatsächlich im (modifizierten) Folgemodus gestartet.

Verwenden Sie +Fnur für das Äquivalent von plain tail -f:

less +F file.log
Volker Siegel
quelle
Ich vermute, dass, wenn Sie einem unendlichen Stream mit weniger folgen, dies möglicherweise Ihren Speicher erschöpft, da im Gegensatz zu tail -f die verwendete Speichermenge nicht durch das Terminal-Scrollback-Limit begrenzt ist (es sei denn, das Terminal-Scrollback-Limit ist ebenfalls unendlich). less + F muss den gesamten Scrollback-Verlauf beibehalten und kann sich nicht darauf verlassen, Slices aus einer Datei auf der Festplatte neu zu laden.
CMCDragonkai
@ CMCDragonkai Interessanter Punkt. lessMit Optionen zum Steuern der pro Datei verwendeten Puffergröße ( -bund -B) ist es mir nicht klar, ob die Größe standardmäßig begrenzt ist.
Volker Siegel
In der Manpage für -Bheißt es: "Standardmäßig werden Puffer beim Lesen von Daten aus einer Pipe automatisch nach Bedarf zugewiesen. Wenn eine große Menge von Daten aus der Pipe gelesen wird, kann dies dazu führen, dass eine große Menge an Speicher zugewiesen wird Die Option -B deaktiviert diese automatische Zuweisung von Puffern für Pipes, so dass nur 64 KB (oder der durch die Option -b angegebene Speicherplatz) für die Pipes verwendet werden. " Das bedeutet, dass beim Lesen aus einer unendlichen Pipe standardmäßig unendlicher Speicher zugewiesen wird. Wenn jedoch aus einer Datei wie einer Protokolldatei gelesen wird, werden standardmäßig 64 K-Slices verwendet.
CMCDragonkai
4

In Fedora hat zumindest weniger eine + F-Option, die dem Inhalt einer Datei folgt, genau wie es tail -f tut.

Aktualisiere, drücke F in weniger, um auch den Verfolgungsmodus umzuschalten

user1529413
quelle
Bist du sicher? Mein weniger hat eine widersprüchliche Option , die benannt werden , -F: Der Mann Seite von weniger sagt: -F or --quit-if-one-screen. Welche Version von lesshast du? Meins sagt less 458mit der Option -V.
Volker Siegel
Sehr interessant, danke für den Link! Das scheint kein Gnu weniger zu sein. Die volle erste Zeile von less -Vist less 458 (GNU regular expressions). Bitte geben Sie mir Ihre Version.
Volker Siegel
Ja, ich bin sicher, aber gehen Sie voran und stimmen Sie mich ab, Stackexchange muss die Liebe teilen
user1529413
1
Nur um sicherzugehen, dass Sie dachten, ich hätte Sie runtergestimmt: Nein, ich habe Sie hochgestimmt.
Volker Siegel