Isso funciona:
while ! tail -f bar/somefile.log ; do sleep 1 ; done
tail -f bar/somefile.log
falharia imediatamente quando somefile.log não existe. Como posso fazer a cauda indefinidamente esperar que esse arquivo seja criado (o que acontecerá em alguns instantes)?
Atualização: usando -F
, vejo:
tail: cannot open 'bar/somefile.log' for reading: No such file or directory
tail: cannot watch parent directory of 'bar/somefile.log': No such file or directory
porque bar
ainda não existe (será criado em alguns instantes). quando bar
foi criado e somefile.log
foi tocado, a cauda não recebeu as alterações.
Você não está mencionando para qual sistema operacional você precisa, mas tail
on linux o --retry e - seguir as opções que farão exatamente isso;
tail --retry --follow=name somefile.log
Crie o arquivo primeiro:
touch somefile ; tail -f somefile