如何使用inotify自动删除linux中创建的文件?

时间:2011-11-29 17:18:32

标签: linux inotify

我正在尝试使用inotify删除创建的文件,但它不起作用:

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

当我在/ test中创建文件时,我得到了这个:

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

所以好像$ FILE变量没有传递给rm命令......我怎么能正确地做到这一点?感谢。

1 个答案:

答案 0 :(得分:6)

启动inotifywait一次(没有-m标志)时,您可以轻松使用xargs

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

将等待/ test中的文件创建,将文件名提供给xargs并将此arg提供给/bin/rm以删除该文件,然后它将退出。

如果您需要连续观察目录(使用inotifywait的-m参数),请创建如下脚本文件:

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

然后,将删除在/ test目录中创建的每个新文件。