tail -f bar/somefile.log
当 somefile.log 不存在时会立即失败。如何让 tail 无限期地等待该文件被创建(这将在几分钟后发生)?
更新:使用-F
,我看到:
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
因为bar
尚不存在(它将在几分钟后被创建)。当bar
被创建并被somefile.log
触及时,尾部根本没有察觉到变化。
答案1
这有效:
while ! tail -f bar/somefile.log ; do sleep 1 ; done
答案2
你没有提到你需要哪个操作系统,但是tail
在 Linux 上有 --retry 和 --follow 选项可以做到这一点;
tail --retry --follow=name somefile.log
答案3
首先创建文件:
touch somefile ; tail -f somefile