Cómo comenzar a seguir un archivo que aún no se ha creado

12

Utilizo tailpara controlar el progreso de los trabajos que sé que escribirán su progreso en el disco. Casi siempre, sé qué archivo crearán antes de comenzar a ejecutarse (los trabajos los envía un planificador en una supercomputadora)

¿Hay alguna forma de tailestos archivos antes de que se creen? Me gustaría hacerlo evitando las condiciones de carrera y / o haciendo suposiciones sobre cómo o cuándo los trabajos escriben en el disco.

Amelio Vazquez-Reina
fuente

Respuestas:

13

Use la -Fbandera para seguir (asumiendo que tiene tailde GNU coreutils):

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

De 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
fuente
3

Si su tailimplementación no tiene la --retryopción, probablemente podría hacer trampa y crear el archivo usted mismo:

$ touch file && tail-f file

Dependiendo de sus requisitos con respecto a la propiedad y los permisos, eso podría ser suficiente.

terdon
fuente