Как начать отслеживать файл, который еще не был создан

12

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

Есть ли путь к tailэтим файлам до их создания? Я хотел бы сделать это, избегая условий гонки и / или делая предположения о том, как или когда задания записываются на диск.

Амелио Васкес-Рейна
источник

Ответы:

13

Используйте -Fфлаг для хвоста (при условии, что у вас есть tailиз GNU coreutils):

tail -F file-that-does-not-exist

От man tail:

   -F     same as --follow=name --retry
   --retry
          keep trying to open a file even when it is or becomes inaccessi
          ble; useful when following by name, i.e., with --follow=name
   -f, --follow[={name|descriptor}]
          output appended data as the file grows; -f, --follow, and --fol
          low=descriptor are equivalent
larsks
источник
3

Если ваша tailреализация не имеет --retryопции, вы можете просто обмануть и создать файл самостоятельно:

$ touch file && tail-f file

В зависимости от ваших требований в отношении владения и разрешений этого может быть достаточно.

Тердон
источник