fazer cauda esperar por um arquivo para existir

23

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.

    
por Sridhar Ratnakumar 20.02.2012 / 20:09

3 respostas

26

Isso funciona:

while ! tail -f bar/somefile.log ; do sleep 1 ; done
    
por 20.02.2012 / 20:15
27

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
    
por 20.02.2012 / 20:18
4

Crie o arquivo primeiro:

touch somefile ; tail -f somefile
    
por 21.02.2012 / 00:48

Tags