23

tail -f bar/somefile.log сразу же завершится ошибкой, если 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 был затронут, tail вообще не воспринимал изменения.

3 ответа3

28

Вы не упоминаете, для какой ОС она вам нужна, но у tail в linux есть опции --retry и --follow, которые будут делать именно это;

tail --retry --follow=name somefile.log
26

Это работает:

while ! tail -f bar/somefile.log ; do sleep 1 ; done
5

Сначала создайте файл:

touch somefile ; tail -f somefile

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .