Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.