Cron Job - команда для удаления всех файлов .flv каждый день. - PullRequest
1 голос
/ 06 января 2009

У меня есть команда, которую я запускаю каждый день через cron:

find /home/get/public_html/videos -daystart -maxdepth 0 
-mtime +1 -type f -name "*.flv" |xargs rm -f

Проблема в том, что он не удаляет файлы .flv в каталоге, возраст которого составляет 1 или более дней.

Как я могу исправить вышеприведенную команду?

РЕДАКТИРОВАТЬ: Paul - команда "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

Ответы [ 3 ]

3 голосов
/ 06 января 2009

Лучше использовать -print0 при поиске и -0 в xargs, если один файл имеет необычное имя.

Кроме того, вы хотите использовать -maxdepth 1 для фактического поиска чего-либо в указанном каталоге.

-maxdepth 0 означает, что он будет найден только в каталогах, перечисленных в командной строке, он не будет проверять содержимое этих каталогов.

1 голос
/ 06 января 2009
-maxdepth 1
1 голос
/ 06 января 2009

Вы имеете в виду, если у вас есть каталог /home/get/public_html/videos/foo, он не удаляет файлы в них? Это может быть связано с тем, что у вас установлен аргумент -maxdepth 0, который предотвращает спуск find в подкаталоги.

...