Frage

Ich versuche, eine erstellte Datei mit Inotify zu löschen, aber sie funktioniert nicht:

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

Wenn ich eine Datei in /test erstelle, bekomme ich Folgendes:

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

Es scheint also, dass die $ -Datei -Variable nicht an den Befehl rm übergeben wird ... wie kann ich das richtig machen? Vielen Dank.

War es hilfreich?

Lösung

Wenn Sie einmal Ihren Inotifywait (ohne das Flag -m) starten, können Sie leicht verwenden Xargs :

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

Dies wartet auf eine Dateierstellung in /test, geben Sie den Dateinamen Xargs und geben Sie dieses Arg an /bin/rm Um die Datei zu löschen, wird sie beendet.

Wenn Sie Ihr Verzeichnis kontinuierlich beobachten müssen (mit dem Paramaramerad von -m von InotifyWait), erstellen Sie eine Skriptdatei wie folgt:

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

Und dann wird jede neu erstellte neu erstellte Datei im Verzeichnis /Testverzeichnis entfernt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top