2011-11-29 33 views
5

Ben Inotify ile oluşturulan dosyayı silmeye çalışıyorum ama çalışmıyor:Oluşturulan dosyayı linux içinde otomatik olarak nasıl inotify?

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

i bu olsun/testte bir dosya oluştururken:

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

yüzden görünüyor $ DOSYA değişkeni rm komutuna aktarılmaz ... bunu nasıl doğru yapabilirim? Teşekkürler./Testte dosya oluşturma için bekleyecektir

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

, Xargs için dosya adını vermek ve bu arg vermek: (-m bayrağı olmadan) bir kez inotifywait çalıştırırken

+0

Umarım geçici dosyalar almak için bunu yapmazsınız! Geçici bir dosya almak için, 'open'-ed dosya tanımlayıcısına sahipken, dizindeki girdinin bağlantısını '' kestir ''. –

cevap

6

, kolayca xargs kullanabilirsiniz dosyayı silmek için /bin/rm'a, sonra çıkacaktır.

sürekli (inotifywait ait -m param ile) dizin izlemek için gerekiyorsa, bu gibi bir komut dosyası oluşturmak:

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

Ve sonra, her yeni sende oluşturulan dosyası/test dizini olacak çıkarıldı.

İlgili konular