Descrivi l' tailutilità GNU . La differenza tra questi due flag è che se apro un file, ad esempio un file di registro, come questo:
$ tail -f /var/log/messages
... e se la funzione di rotazione del registro sulla mia macchina decide di ruotare quel file di registro mentre guardo i messaggi che vengono scritti su di esso ("ruotare" significa eliminare o spostare in un'altra posizione ecc.), l'output che vedo sarà solo Stop.
Se apro il file in tailquesto modo:
$ tail -F /var/log/messages
... e ancora, il file viene ruotato, l'output continuerà a fluire nella mia console perché tailriaprirà il file non appena sarà nuovamente disponibile, cioè quando i programmi che scrivono sul registro hanno iniziato a scrivere sul nuovo /var/log/messages .
Sui sistemi BSD gratuiti, non esiste alcuna -Fopzione, ma tail -fsi comporterà come tail -Fsui sistemi GNU, con la differenza che ricevi il messaggio
tail: file has been replaced, reopening.
nell'output quando il file che stai monitorando scompare e ricompare.
PUOI PROVARE QUESTO
In una sessione di shell, fare
$ cat >myfile
Ora aspetterai che tu scriva cose. Basta andare avanti e digitare un po 'incomprensibile, alcune righe. Sarà tutto salvato nel file myfile.
In un'altra sessione della shell (forse in un altro terminale, senza interromperecat ):
$ tail -f myfile
Questo mostrerà il (fine del) contenuto della myfileconsole. Se torni alla prima sessione della shell e digiti qualcosa in più, quell'output verrà immediatamente mostrato dalla tailseconda sessione della shell.
Ora esci catpremendo Ctrl+De rimuovi il myfilefile:
$ rm myfile
Quindi eseguire nuovamente il gatto:
$ cat >myfile
... e digita qualcosa, poche righe.
Con GNU tail, queste linee non verranno visualizzate nella seconda sessione della shell (dove tail -fè ancora in esecuzione).
Ripeti l'esercizio con tail -Fe osserva la differenza.