Чтобы прочитать файл и следовать ему от начала до прерывания:
tail -fn +1 file
Чтобы продемонстрировать это, попробуйте следующее (предполагая, что Bash с GNU Coreutils):
(while true; do printf . >> /tmp/file; sleep 1; done)&
tail -fn +1 /tmp/file # (Ctrl-C to interrupt, of course, or otherwise kill it.)
kill % # Kills the while-loop.
(Примечание: + 1f
, упомянутый другими, интерпретируется как имя файла, по крайней мере, в команде GNU tail
.)
Вышеупомянутое работает для отдельный файл. Объединение нескольких файлов не сможет детерминированно проследить за всеми из них, не зависнув от первого. Чтобы « cat and follow », следуя только за последним файлом, можно использовать замену процесса .Вот еще одна демонстрация:
printf file1 > /tmp/file1; printf file2 > /tmp/file2
(while true; do printf . | tee -a /tmp/file{1,2} > /dev/null; sleep 1; done)&
cat /tmp/file1 <(tail -fn +1 /tmp/file2) # (Interrupt or kill it.)
kill % # Kills the while-loop.