Ich mag den watch
Befehl, aber er hat seine Grenzen .
Ich bin gespannt, ob ich die Funktionalität von watch
mit nachahmen könnte less
. Ich suche hauptsächlich nach der Möglichkeit, durch mein Verzeichnis zu scrollen, da es über ein laufendes Skript dynamisch geändert wird.
tail -f foo.log | grep bar
und in der Lage zu sein, den grep-Befehl mit dem Neustart der tail / grep-Pipeline dynamisch zu ändern.Antworten:
In
less
können Sie eingebenF
, um das Lesen am Ende einer Datei fortzusetzen (wietail -f
); Sie können:e
einen Dateinamen eingeben, um eine andere Datei anzuzeigen. Wenn Sie jedoch den Namen der aktuellen Datei eingeben, wird die Datei leiderless
nicht erneut geladen. Allerdings gibt es einen Trick , um es zu machen , die aktuelle Datei erneut zu lesen, vorgeschlagen von sabgenton : Art:e
und geben Sie den Namen einer nicht existierenden Datei ; Dadurch wird weniger veranlasst, eine Fehlermeldung anzuzeigen und anschließend die aktuelle Datei neu zu laden.Wenn Sie nach einer Alternative suchen
watch ls
, sind hier einige:auto-revert-mode
wird die Datei oder das Verzeichnis alle 5 Sekunden neu geladen (die Verzögerung ist konfigurierbar).R
, um die (lokale) URL neu zu laden.quelle
less +F
nur nach angehängten Inhalten gesucht . Verwenden Sie:e nonexistentfile
diese Taste, um vollständig geänderte Eingaben erneut zu lesen.R
die Datei wird nicht zuverlässig aktualisiert . Es aktualisiert den Bildschirm und löscht einige Eingabepuffer, lädt jedoch nicht unter allen Umständen Daten aus der Datei neu (nur wenn die Datei groß ist? Ich habe mich nicht tief in den Code vertieft).Shift+Fwerde
less
ähnlich machen wietailf
. Das heißt, es wird aktualisiert, wenn mehr Daten an die Datei angehängt werden.quelle
less
werden diese Änderungen nicht angezeigt.$COMMAND | less
. Ich frage mich, ob es einen schönen Weg gibt, dies zu umgehen. Sie können Sachen wie machen,$COMMAND > /tmp/file & less /tmp/file
aber das ist nicht sehr schön.Einfach eintippen:
Dies emuliert das Drücken von "F" im Editor.
quelle
alias check="less +F"
zu my hinzugefügt.bashrc
.man
Seiten können sehr informativ sein. Lass dich von ihnen nicht einschüchtern. Unter anderemman less
heißt es , dass Sie denR
Befehl verwenden können, um:(Mir ist klar, dass diese Frage älter als 6 Jahre ist, aber sie taucht bei Google Search auf. Daher bin ich nicht der einzige, der auf den Link geklickt hat, um hierher zu gelangen.)
quelle
less
habe die Datei nicht mit ihrem Dateinamen erneut geöffnet - dh als sich der Inode der Datei änderte (wie beim Überschreiben der Datei mitmv
), blieb der alte Dateiinhalt erhalten (wahrscheinlich wurde der alte Inode erneut gelesen) - - 2. Die erste angezeigte Zeile beginnt wahrscheinlich mit demselben Byte-Versatz wie im ursprünglichen Dateiinhalt. Wenn sich die Zeilenlängen ändern, kann die erste angezeigte Zeile unvollständig sein und die angezeigten Zeilen können sich nach oben / unten bewegen.R
funktioniert nicht immer. Siehe unix.stackexchange.com/questions/4351/…Die "F" -Taste beim Laufen
less
führt zu einem "Folgen" ähnlich demtail -f
, aber ich bin nicht sicher, ob dies das erreichen wird, wonach Sie hier suchen.quelle
Normalerweise schreibe ich nur, Gum die Ausgabe einmalig zu beenden. Ich finde es besonders hilfreich über ein Netzwerk-Dateisystem wie CIFS.
quelle
man less
: 'G oder> oder ESC-> Gehe zu Zeile N in der Datei, Standard das Ende der Datei.' Ich lösche meine alten falschen Kommentare hier, sorry für sie.less
, Mark Nudelman, antwortete wie folgt: "Der Befehl G erzwingt normalerweise kein erneutes Lesen der Datei wie der Befehl R. Dies kann möglicherweise der Fall sein, wenn das Ende der Datei bei G noch nicht gelesen wurde wird aufgerufen, so dass das Springen zum Ende der Datei die Daten dort zum ersten Mal lesen muss. Wenn Sie zum Beispiel mit G zum Ende springen, dann mit 1G zum Anfang zurückspringen, dann ändert ein anderes Programm die Daten an das Ende der Datei (ohne die Länge zu ändern) "(Forts.)Sie können vim verwenden, um die Datei zu lesen, und dann die folgende Zuordnung zu Ihrer
.vimrc
Datei hinzufügen, und Sie können eine Datei einfach mit neu laden ,r:Beachten Sie, dass sich vim beschwert, wenn Sie die Datei bereits bearbeitet haben. Wechseln Sie einfach zu
Änderungen ignorieren.
quelle
vim
deine kalten, toten Hände loswerden . Der Kontext der Frage ist ungefährless
, aber als jemand mit monomanischen Tendenzen sympathisiere ich!R
for repaint lädt die Datei nicht immer neu. [1]Eine Problemumgehung, mit der die Datei immer neu geladen wird, besteht darin, auf zu drücken
hq
, die Hilfeseite zu öffnen und dann zu beenden. Dies hat den Nebeneffekt, dass die Datei neu geladen werden muss.[1] Hier sind einige Beispiele für Situationen, in denen ein
R
Reload durchgeführt und nicht durchgeführt wird:>
und>>
Änderungen: DO get reloadedsed -i
, gEdit, TextEdit: NICHT neu geladen werdenvi
Änderungen unter Linux : DO get reloadedvi
Änderungen auf dem Mac : NICHT neu ladenIch glaube, der Unterschied hängt davon ab, ob sich die Inode ändert (das können Sie überprüfen
ls -i foo.txt
). Wenn sich der Inode ändert,R
funktioniert das nicht.quelle
Du
tail -f
könntest es stattdessen weiterleiten, es würde dazu führen, dass du der Ausgabe folgst. Sie verlieren jedoch die Fähigkeit, sich durch Ihre Ausgabe zu bewegen (zu scrollen).quelle
Wenn Sie nicht abgeneigt sind, einen Browser zu verwenden, können Sie den Algernon -Webserver mit folgendem Befehl starten :
Eine Liste der Dateien wird dann unter http: // localhost: 3000 / angezeigt und automatisch aktualisiert .
quelle
less
Ich habe gerade diesen Thread wie jeder andere gefunden. Ich möchte die Lösung hinzufügen, wenn Sie sich bereits am Ende der Datei befinden. Wenn Sie 'g' gefolgt von 'G' verwenden, wird eine Aktualisierung der Datei erzwungen.
Am Ende habe ich in meinem Terminalprogramm (SecureCRT) eine Makrotaste dafür erstellt. Das Makro ist einfach 'gG'.
quelle