Ich möchte eine Datei sehen, die alle 5 Minuten mit überschrieben wird less
. Wie kann ich less
den neuen Dateideskriptor befolgen, anstatt den alten anzuzeigen? watch "cat file"
wird es nicht tun, weil die Datei zu lang ist, um in ein Terminalfenster zu passen.
9
tail -f
der Manpage definiert ist. Trotzdem habe ich meine Frage geklärt.less --follow-name
siehe unix.stackexchange.com/a/74287/112522Antworten:
Sie können diesen Effekt erzielen, indem Sie den
F
Befehl (Shift+F
) eingeben, während Sie die Datei in anzeigenless
. Drücken Sie, um die Verfolgung zu beenden und zum Paging zurückzukehrenCtrl+C
Da sich Ihre Datei nur alle 5 Minuten ändert, können Sie auch
tail -f
eine längere Ruhezeit mit verwenden und angeben-s
(standardmäßig 1 Sekunde). Zum Beispiel,prüft
myfile
alle 60 Sekunden auf Ausgabe.EDIT: Aufgrund irreführender Fragen war die obige Antwort unbefriedigend. Der zweite Versuch folgt:
less
Versuchen Sie Folgendes, um dieselbe Datei alle 5 Minuten erneut zu öffnen :Dadurch wird eine Subshell erzeugt, die einen Hintergrund für einen anderen Shell-Prozess darstellt, der angewiesen wird, den übergeordneten Prozess nach 5 Minuten zu beenden. Dann öffnet es die Datei mit
less
. Wenn der Hintergrund-Shell-Befehl die übergeordnete Subshell beendet, werden alle untergeordneten Elemente beendet, einschließlich des Befehls "less". Dann startet die Schleife den Prozess erneut.Die einzige einfache Möglichkeit, dies zu beenden, besteht darin, das Terminal zu töten, in dem sich Ihre ursprüngliche Shell befindet. Wenn dies nicht akzeptabel ist, können Sie den Trick "Killfile" verwenden:
Um damit aufzuhören
stuff
,rm
das Killfile in einer anderen Shell.quelle
watch -n 1 less <filename>
Sie können etwas Ähnliches in tun
vim
.Starten Sie eine Serversitzung von
vim
:Überwachen Sie dann in einer anderen Konsole die Datei auf Aktualisierungen und weisen Sie die vim-Sitzung an, die Datei neu zu laden, sobald sie aktualisiert wird:
Ein paar Fallstricke.
vim
nicht mit derclientserver
Funktion in kompiliert sind .inoifywait
funktioniert nicht mehr, wenn die Datei gelöscht wird. Ich hoffe also, dass Ihre Datei überschrieben wird. Das kann man natürlich auch umgehen.Und wenn Sie eine
less
ähnliche Erfahrung machen möchten , können Sie dieless
Makros verwenden, um Ihreless
Tastenkombinationen zu erhaltenvim
.quelle
Ich fand ein altes, aber sehr gutes "weniger" ähnliches Programm (einen "Pager"). Es hat einen "R" -Befehl, der die Datei aktualisiert.
Es heißt "lv" . Sie können es unter Ubuntu installieren mit:
Es scheint jedoch keine Autoreload-Funktion zu haben.
quelle
Sie können diesen Befehl versuchen: tail -f file
quelle
Schwanz ist dein Freund. "tail -f Dateiname" zeigt Ihnen neue Zeilen, wenn sie erscheinen.
Oder wenn Sie nach Änderungen suchen, die in der Mitte der Datei vorgenommen wurden, führen Sie möglicherweise alle paar Minuten ein Skript aus, um eine Kopie der Datei an einen temporären Speicherort zu erstellen und einen Unterschied zu machen?
quelle
tail -f
würde aber immer noch den alten lesen.