Как автоматически удалить созданный файл в 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 и передаст этот аргумент /bin/rm
удалить файл, затем он выйдет.
Если вам нужно постоянно следить за вашим каталогом (с параметром -m inotifywait), создайте файл сценария следующим образом:
inotifywait -m -r --format '%w%f' -e create /test | while read FILE
do
/bin/rm $FILE
done
И затем каждый новый файл, созданный в директории you /test, будет удален.