Ви описуєте tail
утиліту GNU . Різниця між цими двома прапорами полягає в тому, що якщо я відкрию файл, наприклад, файл журналу, наприклад, такий:
$ tail -f /var/log/messages
... і якщо засіб обертання журналу на моїй машині вирішить повернути цей файл журналу під час перегляду записуваних до нього повідомлень ("поворот" означає видалення або переміщення в інше місце тощо), результат, який я бачу, буде просто Стоп.
Якщо я відкрию файл tail
таким чином:
$ tail -F /var/log/messages
... і знову файл повертається, вихід буде продовжувати надходити в мою консоль, тому що він tail
би відкрив файл, як тільки він знову став доступним, тобто коли програма (и) запису до журналу почала писати до нового /var/log/messages
.
У безкоштовних системах BSD немає -F
варіантів, але він tail -f
буде вести себе так, як tail -F
це робиться в системах GNU, з тією різницею, що ви отримаєте повідомлення
tail: file has been replaced, reopening.
у виході, коли файл, який ви відстежуєте, зникає і знову з’являється.
МОЖЕТЕ ТЕСТИТИ ЦЕ
За один сеанс оболонки зробіть
$ cat >myfile
Тепер ви будете чекати, коли ви наберете речі. Просто продовжуйте і введіть декілька рядків, кілька рядків. Це все буде збережено у файл myfile
.
В іншому сеансі оболонки (можливо, в іншому терміналі, не перебиваючиcat
):
$ tail -f myfile
Це покаже (кінець) вмісту myfile
консолі. Якщо ви повернетесь до першого сеансу оболонки і введете щось більше, цей результат негайно буде показаний tail
на другому сеансі оболонки.
Тепер вийдіть cat
, натиснувши Ctrl+Dі видалити в myfile
файл:
$ rm myfile
Потім знову запустіть кота:
$ cat >myfile
... і введіть щось, кілька рядків.
З GNU tail
ці рядки не відображатимуться у другому сеансі оболонки (де tail -f
все ще запущено).
Повторіть вправу з tail -F
і спостерігайте за різницею.