2011-11-29 18 views
5

estoy tratando de borrar un archivo creado con inotify pero no funciona:cómo eliminar automáticamente el archivo creado en linux con inotify?

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

cuando creo un archivo en/test me sale esto:

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

por lo que parece que el La variable $ FILE no se pasa al comando rm ... ¿cómo puedo hacer esto correctamente? Gracias.

+0

¡Espero que no hagas eso para obtener archivos temporales! Para obtener un archivo temporal, simplemente 'desvincula 'la entrada en su directorio mientras todavía tiene un descriptor de archivo' abierto'-ed ... que es lo que 'tmpfile' hace. –

Respuesta

6

Al poner en marcha su inotifywait una vez (sin el indicador -m), se puede utilizar fácilmente xargs:

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

que esperar a que una creación de archivos en/prueba, dan el nombre de archivo para xargs y dar a este arg a /bin/rm para eliminar el archivo, luego saldrá.

Si usted necesita mirar continuamente su directorio (con el parámetro -m de inotifywait), crear un archivo de script como el siguiente:

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

Y entonces, cada nuevo archivo creado en ti/directorio de prueba será remoto.

Cuestiones relacionadas