Opisujesz tailnarzędzie GNU . Różnica między tymi dwiema flagami polega na tym, że jeśli otworzę plik, na przykład plik dziennika, taki jak ten:
$ tail -f /var/log/messages
... a jeśli funkcja obracania dziennika na moim komputerze zdecyduje się obrócić ten plik dziennika podczas oglądania zapisywanych w nim wiadomości („obrót” oznacza usunięcie lub przeniesienie w inne miejsce itp.), wynik, który zobaczę, będzie po prostu zatrzymać.
Jeśli otworzę plik w tailten sposób:
$ tail -F /var/log/messages
... i ponownie plik jest obracany, dane wyjściowe będą nadal płynąć w mojej konsoli, ponieważ tailponownie otworzą plik, gdy tylko stanie się ponownie dostępny, tj. gdy program (programy) zapisujący dziennik zaczną zapisywać do nowego /var/log/messages .
W darmowych systemach BSD nie ma -Fopcji, ale tail -fbędzie się zachowywać tak jak tail -Fw systemach GNU, z tą różnicą, że otrzymasz komunikat
tail: file has been replaced, reopening.
w danych wyjściowych, gdy monitorowany plik znika i pojawia się ponownie.
MOŻESZ TESTOWAĆ
W jednej sesji powłoki wykonaj
$ cat >myfile
To będzie teraz czekać na wpisanie rzeczy. Po prostu napisz bełkot, kilka wierszy. Wszystko zostanie zapisane w pliku myfile.
W innej sesji powłoki (może w innym terminalu, bez przerywaniacat ):
$ tail -f myfile
Spowoduje to wyświetlenie (końca) zawartości myfilekonsoli. Jeśli wrócisz do pierwszej sesji powłoki i wpiszesz coś więcej, dane wyjściowe zostaną natychmiast pokazane przez tailw drugiej sesji powłoki.
Teraz zamknąć catnaciskając Ctrl+Di usunąć ten myfileplik:
$ rm myfile
Następnie ponownie uruchom kota:
$ cat >myfile
... i wpisz coś, kilka wierszy.
W GNU tailte linie nie pojawią się w drugiej sesji powłoki (gdzie tail -fnadal działa).
Powtórz ćwiczenie tail -Fi obserwuj różnicę.