Я хочу вывести содержимое файла, пока они меняются, например, если у меня есть файл, foobar
и я делаю:
magic_command foobar
Текущий терминал должен отображать содержимое файла и ждать, пока я не знаю, я нажимаю ^ C.
Тогда если из другого терминала я делаю:
echo asdf >> foobar
Первый терминал должен отображать вновь добавленную строку в дополнение к исходному содержимому файла (конечно, учитывая, что я не нажимал ^ C).
Я отмечу это как домашнее задание, так как я хочу изучать и изучать Linux, но это не домашнее задание, это просто мое любопытство.
Ответы:
Вы можете использовать
tail command
с-f
:Это хорошее решение для шоу в реальном времени.
источник
-F
(заглавная f), которая откроет файл, если он будет удален и заново создан по пути.Если вы хотите показать короткий файл, который умещается на одном экране терминала, и то, что меняется, возможно, весь файл, вы можете использовать
watch
:watch cat example.txt
По умолчанию он показывает весь файл каждые 2 секунды, включая необязательный заголовок:
Опция
-d
(--differences
) выделит изменения из предыдущей версии вывода или из первой версии.источник
Когда мне нужно обнаружить изменения файла и сделать что-то отличное от того
tail -f filename
, что делает, я использовалinotifywait
в скрипте, чтобы обнаружить изменение и действовать в соответствии с ним. Пример использования показан ниже. Смотритеman inotifywait
для других имен событий и переключателей. Вам может понадобиться установитьinotify-tools
пакет, например, черезsudo apt-get install inotify-tools
.Вот пример сценария, который называется
exec-on-change
:В двух консолях я вводил команды следующим образом (где A> означает запись в консоли A, а B> означает запись в консоли B.)
В
cat t
консоли A появился следующий вывод :В
exec-on-change
консоли B появился следующий вывод :exec-on-change
Сценарий завершается , когда яrm
«Dt
.источник
less
имеет режим следования, аналогичныйtail -f
- просто нажмите,F
когда он у вас открыт.источник
У меня есть три решения:
1)
tail -f
хорошая идея2) мы также
tailf
должны использовать3) третий скрипт bash:
источник