Cron Job - команда для удаления всех файлов .flv каждый день.
-
03-07-2019 - |
Вопрос
У меня есть команда, которую я запускаю каждый день через cron:
find /home/get/public_html/videos -daystart -maxdepth 0
-mtime +1 -type f -name "*.flv" |xargs rm -f
Проблема в том, что он не удаляет файлы .flv в каталоге, возраст которого составляет 1 или более дней.
Как я могу исправить вышеуказанную команду?
РЕДАКТИРОВАТЬ: Пол - команда < ls -l / home / get / public_html / videos " в результате получается более 2000 файлов, но вот 2 из них следует удалить:
-rw-r--r-- 1 get get 3501188 Jan 4 15:24 f486cf0a2b6bb40e4c50c991785084131231104229.flv
-rw-r--r-- 1 get get 10657314 Jan 4 17:51 f5f1490ddaa11a663686f9d06fb37d981231112941.flv
Решение
Лучше использовать -print0 при поиске и -0 в xargs, если один файл имеет необычное имя.
Кроме того, вы хотите использовать -maxdepth 1 для фактического поиска чего-либо в указанном каталоге.
-maxdepth 0 означает, что он будет найден только в каталогах, перечисленных в командной строке, он не будет проверять содержимое этих каталогов.
Другие советы
Вы имеете в виду, что если у вас есть каталог / home / get / public_html / videos / foo
, он не удаляет файлы в них? Это может быть связано с тем, что у вас установлен аргумент -maxdepth 0
, который не позволяет find
спускаться в подкаталоги.
-maxdepth 1