Você provavelmente deseja tail -F
(observe que ele está em maiúscula), que tentará abrir / ler o arquivo se ele falhar.
De man tail
:
-f, --follow[={name|descriptor}]
output appended data as the file grows; -f, --follow,
and --follow=descriptor are equivalent
-F same as --follow=name --retry
--retry
keep trying to open a file even when it is or becomes
inaccessible; useful when following by name, i.e., with
--follow=name
Se a sua versão de tail
não tiver -F
(o que equivale a tail -f=name --retry
), você poderá usar inotify e esperar por close_write ( inotifywait
faz parte de inotify-tools ):
file=foo
while inotifywait -qq -e close_write "$foo" >/dev/null; do
cat "$foo"
done > log
tail -F
deve ser preferido, se disponível, porque há uma condição de disputa ao usar inotifywait
.