Cron Job - команда для удаления всех файлов .flv каждый день.

StackOverflow https://stackoverflow.com/questions/416143

Вопрос

У меня есть команда, которую я запускаю каждый день через 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top