2

В UNIX (OS X BSD, если быть точным) у меня есть команда "tail -f" в файле журнала. Время от времени я хочу удалить этот файл журнала, чтобы мне было легче просматривать его в моем текстовом редакторе.

Я удаляю файл, а затем моя программа воссоздает его после новой активности. Тем не менее, моя команда tail (и все, что просматривало старый файл журнала) не обновляется; он все еще смотрит старый, удаленный файл журнала.

Я думаю, что понимаю, почему это так (имена файлов просто являются указателями на блоки данных файла). Я хотел бы знать, как я могу обойти это. В идеале, моя команда tail (и все, что я указываю на файл) будет в состоянии прочитать данные из нового файла, когда имя файла будет удалено и воссоздано.

Как бы я это сделал?

1 ответ1

7

Посмотрите на опцию -F . Я думаю, что это соответствует вашей цели.

Из инфо хвоста:

  -F
     This option is the same as `--follow=name --retry'.  That is, tail
     will attempt to reopen a file when it is removed.  Should this
     fail, tail will keep trying until it becomes accessible again.

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