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