как автоматически удалить созданный файл в linux с помощью inotify?
Я пытаюсь удалить созданный файл с помощью inotify, но это не работает:
inotifywait -r --format '%w%f' -e create /test && rm $FILE
Когда я создаю файл в /test, я получаю следующее:
/test/somefile.txt
rm: missing operand
Try `rm --help' for more information.
Таким образом, похоже, что переменная $FILE не передается команде rm... как я могу сделать это правильно? Спасибо.
1 ответ:
При запуске inotifywait один раз (без флага-m), вы можете легко использовать xargs :
inotifywait -r --format '%w%f' -e create /test -q | xargs /bin/rm
, который будет ждать создания файла в /test, даст имя файла xargs и даст этот arg
/bin/rm
, чтобы удалить файл, после чего он выйдет.Если вам нужно постоянно следить за своей Директорией (с параметром-m inotifywait), создайте файл сценария следующим образом:
inotifywait -m -r --format '%w%f' -e create /test | while read FILE do /bin/rm $FILE done
А затем каждый новый файл, созданный в каталоге you /test, будет удален.