Meno ha una caratteristica come tail --follow = name (-F)


41

Il comando lesspuò essere utilizzato per sostituire tailin

tail -f file

per fornire funzionalità come la gestione dell'output binario e la navigazione nello scrollback:

less +F file

Il +prefisso significa "fingere di averlo digitato dopo l'avvio" e la chiave Finizia a seguire.

Ma può lessanche sostituire

tail --follow=name file

che segue fileanche se il file effettivo viene eliminato o spostato, come un file di registro in cui viene spostato file.log.1, e quindi viene creato un nuovo file con lo stesso nome del file seguito?


1
Puoi provare con less --follow-nameoless --follow-name +F
don_crissti,

@don_crissti Bello ... less --follow-name +Fè - non ho idea di come mi sia perso - Ero abbastanza sicuro di aver cercato nella pagina man follow... strano. Dagli una risposta!
Volker Siegel,

Bene, qualche altra ricerca rivela che è già stato chiesto e risposto qui, quindi lo lascerò come commento. Puoi sempre votare la risposta lì.
don_crissti,

@don_crissti Giusto ... tranne per il fatto che la tua risposta corretta non è stata trovata lì - --follow-nameè descritta, ma +Fnon è mai menzionata, e penso che sia abbastanza importante perché ovviamente non è ampiamente conosciuta.
Volker Siegel,

Se sei venuto qui a causa di una ricerca su Google less follow, LEGGI LA DOMANDA. Risponde già come apportare le lessseguenti modifiche ai file!
Hubert Grzeskowiak,

Risposte:


40

Sì, lesspuò seguire il nome del file

La funzione ha una sintassi abbastanza oscura:

less --follow-name +F file.log

Con meno, --follow-nameè diverso taildall'opzione --follow=name.
Non fa lessseguire il file, ma modifica il comportamento della chiave di comando Fall'interno di less da seguire in base al nome del file, non al descrittore del file.

Inoltre, non esiste un'opzione normale per l'avvio lessin modalità follow.
Ma puoi usare la riga di comando per dare i tasti da eseguire dopo l'avvio, con il prefisso +.
La combinazione dell'opzione modificatore con +F, lessinizierà effettivamente nella modalità di follow-up (modificata).

Utilizzare da +Fsolo per l'equivalente di plain tail -f:

less +F file.log

Sospetto che se segui un flusso infinito con meno, questo alla fine esaurirà la tua memoria perché a differenza di tail -f, la quantità di memoria utilizzata non è limitata dal limite di scrollback del terminale (a meno che anche il limite di scrollback del terminale sia infinito). less + F deve preservare l'intera cronologia dello scrollback e non può fare affidamento sul ricaricare le sezioni da un file sul disco rigido.
CMCDragonkai,

@CMCDragonkai Punto interessante. lessha opzioni per controllare le dimensioni del buffer utilizzate per file ( -be -B), non è ovvio per me se la dimensione è limitata per impostazione predefinita.
Volker Siegel,

La pagina man per -Bdice che "Per impostazione predefinita, quando i dati vengono letti da una pipe, i buffer vengono allocati automaticamente secondo necessità. Se una grande quantità di dati viene letta dalla pipe, ciò può causare l'allocazione di una grande quantità di memoria. L'opzione -B disabilita questa allocazione automatica dei buffer per le pipe, in modo che solo 64 K (o la quantità di spazio specificata dall'opzione -b) venga utilizzata per la pipe. ". Ciò significa che quando si legge da una pipe infinita, la memoria infinita viene allocata per impostazione predefinita, ma se si legge da un file come un file di registro, vengono utilizzate per impostazione predefinita 64 K slice.
CMCDragonkai,

4

In Fedora almeno meno ha un'opzione + F che segue il contenuto di un file proprio come fa tail -f ..

Aggiorna, prova a premere F in meno per attivare anche la modalità


Sei sicuro? La mia meno ha un'opzione in conflitto di nome stesso, -F: La pagina man di meno dice: -F or --quit-if-one-screen. Di quale versione lesshai? Il mio dice less 458con l'opzione -V.
Volker Siegel,


Molto interessante, grazie per il link! Questo non sembra essere uno gnu di meno. La prima riga completa di less -Vè less 458 (GNU regular expressions). Per favore dammi la tua versione.
Volker Siegel,

Sì, ne sono sicuro, ma avanti e giù votami, stackexchange deve condividere l'amore
user1529413

1
Solo per essere sicuro che pensassi che io ti abbia votato: no, ti ho votato.
Volker Siegel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.