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.

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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.