2011-11-29 3 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 명령에 전달되지 않습니다 ... 어떻게 이것을 올바르게 할 수 있습니까? 감사./테스트에서 파일 생성을 기다립니다

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

는 xargs를에 파일 이름을주고이 인수를 포기 : (-m 플래그없이) 한 번 inotifywait를 출시 할 때

+0

임시 파일을 가져 오지 않았 으면합니다. 임시 파일을 얻으려면'open'-ed 파일 디스크립터를 가지고있는 동안 그 디렉토리에서 엔트리를'unlink '하면된다. 이것은'tmpfile'이하는 일이다. –

답변

6

, 당신은 쉽게 xargs 사용할 수 있습니다 파일을 삭제하려면 /bin/rm으로 변경하고 종료하십시오.

당신이 지속적으로 (inotifywait를의 -m PARAM와) 디렉토리를보고해야하는 경우,이 같은 스크립트 파일 작성 :

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

그리고, 모든 새로 당신에 생성 된 파일을/test 디렉토리가 될 것입니다 제거되었습니다.