2011-11-29 33 views
5

我试图删除与inotify的创建的文件,但它不工作:如何使用inotify自动删除linux中创建的文件?

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

当我创建/测试我得到这个文件:

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

如此看来, $ FILE变量不传递给rm命令...我怎么才能正确地做到这一点?谢谢。

+0

我希望你不要这样做,以获得临时文件!为了得到一个临时文件,只需在其目录中取消链接,同时仍然有一个“打开”文件描述符......这就是'tmpfile'所做的。 –

回答

6

当一次启动您inotifywait(不带-m标志),可以方便地使用xargs

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

,将等待中/测试文件的创建,给文件名xargs的,并给这个ARG到/bin/rm删除该文件,然后它将退出。

如果你需要不断地看你的目录(与inotifywait的-m PARAM),创建一个脚本文件是这样的:

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

然后,每个新文件在创建/ test目录将是除去。

相关问题