Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

tail -f bar/somefile.log would fail immediately when somefile.log does not exist. How do I make tail indefinitely wait for that file to be created (which will happen in a few moments)?

Update: using -F, I see:

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

because bar does't exist yet (it will be created in a few moments). when bar was created, and somefile.log was touched, tail didn't pick up the changes at all.

share|improve this question
up vote 20 down vote accepted

This works:

while ! tail -f bar/somefile.log ; do sleep 1 ; done
share|improve this answer
this is what finally worked for me (for missing parent directory cases). – Sridhar Ratnakumar Feb 20 '12 at 19:48

You're not mentioning which OS you need it for, but tailon linux has the --retry and --follow options that will do just that;

tail --retry --follow=name somefile.log
share|improve this answer
thanks, or tail -F somefile.log. but then, tail fails for a different reason (i've updated my question) – Sridhar Ratnakumar Feb 20 '12 at 19:35

Create the file first:

touch somefile ; tail -f somefile
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .