让 tail 等待文件存在

让 tail 等待文件存在

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

相关内容