2011-11-29 17 views
5

Sto cercando di eliminare un file creato con inotify ma non funziona:come eliminare automaticamente il file creato in linux con inotify?

inotifywait -r --format '%w%f' -e create /test && rm $FILE 

quando creo un file in/test ottengo questo:

/test/somefile.txt 
rm: missing operand 
Try `rm --help' for more information. 

così sembra che il La variabile $ FILE non viene passata al comando rm ... come posso farlo correttamente? Grazie.

+0

Spero che non lo facciate per ottenere file temporanei! Per ottenere un file temporaneo, basta 'scollegare 'la voce nella sua directory mentre si ha ancora un descrittore di file' open' -ed ... che è ciò che 'tmpfile' fa. –

risposta

6

Quando si lancia il tuo inotifywait una volta (senza l'opzione -m), si può facilmente utilizzare xargs:

inotifywait -r --format '%w%f' -e create /test -q | xargs /bin/rm 

che attende la creazione di file in/test, dare il nome del file per xargs e dare a questo arg a /bin/rm per eliminare il file, quindi uscirà.

Se avete bisogno di guardare continuamente la vostra directory (con il parametro -m di inotifywait), creare un file di script come questo:

inotifywait -m -r --format '%w%f' -e create /test | while read FILE 
do 
     /bin/rm $FILE 
done 

E poi, ogni nuova file creato in te/directory test sarà rimosso.

Problemi correlati