2011-11-29 93 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目錄將是除去。

相關問題