somefile.logが存在しない場合、tail -f bar/somefile.log
はすぐに失敗します。そのファイルが作成されるのを無限に待つにはどうすればよいですか(これはしばらくして起こります)?
更新:-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
がタッチされたとき、テールは変更をまったく反映しませんでした。
これは機能します:
while ! tail -f bar/somefile.log ; do sleep 1 ; done
あなたはそれが必要なOSについて言及していませんが、 tail
on linux には--retryオプションと--followオプションがあり、それだけを実行します。
tail --retry --follow=name somefile.log
最初にファイルを作成します。
touch somefile ; tail -f somefile