2011-11-29 9 views
5

próbuję usunąć plik stworzony z inotify ale to nie działa:jak automatycznie usunąć utworzony plik w systemie Linux za pomocą inotify?

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

gdy tworzę plik w/test uzyskać to:

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

więc wydaje się, że Zmienna $ FILE nie jest przekazywana do polecenia rm ... jak mogę to zrobić poprawnie? Dzięki.

+0

Mam nadzieję, że nie zrobisz tego, aby uzyskać pliki tymczasowe! Aby uzyskać plik tymczasowy, po prostu "odłącz" wpis w swoim katalogu, mając wciąż otwarty deskryptor pliku ... tak właśnie działa 'tmpfile'. –

Odpowiedz

6

Rozpoczynając swoją inotifywait raz (bez flagi -m), można łatwo używać xargs:

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

że będzie czekać na tworzenie plików w/test, należy podać nazwę pliku, do xargs i dać tego argumentu do /bin/rm, aby usunąć plik, a następnie zostanie zakończony.

Jeśli trzeba stale obserwować swój katalog (z -m param z inotifywait), należy utworzyć plik skryptu takiego:

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

a następnie każdy nowo tworzonego pliku w tobie/katalog testy będą oddalony.

Powiązane problemy