Come iniziare a modificare un file che non è stato ancora creato


12

Uso tailper monitorare l'avanzamento dei lavori che so scriveranno i loro progressi sul disco. Quasi sempre, so quale file creeranno prima di iniziare l'esecuzione (i lavori vengono inviati da uno scheduler su un supercomputer)

Esiste un modo per tailquesti file prima che vengano creati? Vorrei farlo evitando le condizioni di gara e / o facendo ipotesi su come o quando i lavori scrivono su disco.

Risposte:


13

Usa il -Fflag to tail (supponendo che tu abbia tailda GNU coreutils):

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

Da 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

Se l' tailimplementazione non ha l' --retryopzione, probabilmente potresti semplicemente imbrogliare e creare il file da solo:

$ touch file && tail-f file

A seconda delle esigenze in relazione alla proprietà e alle autorizzazioni che potrebbero essere sufficienti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.