Измените команду на ту, которая не разветвляется и не использует ресурсы - PullRequest
0 голосов
/ 15 января 2009

У меня есть следующая команда, которая удаляет файлы, которым исполнился один день, и которые относятся к типу mp3-файлов.

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

Проблема в том, что когда я его запускаю, иногда говорят:

"fork": ресурс xargs недоступен.

Означает ли это, что эта команда сначала находит файл, а затем запускает много процессов для удаления каждого файла?

Как я могу (когда файл найден) немедленно удалить его, а не передать его в xargs?

Я не могу использовать это -delete («неверный предикат»).

Ответы [ 3 ]

2 голосов
/ 15 января 2009

как насчет попытки:

 find /home/get/public_html/audio -daystart -maxdepth 1 -mtime +1 
    -type f -name "*.mp3" -exec rm -f {} \;
0 голосов
/ 15 января 2009

Возможно, вы можете использовать флаг "-delete" для поиска, вместо того, чтобы отправлять сообщения в xargs?

0 голосов
/ 15 января 2009

Проверьте вашу справочную страницу для поиска, она может поддерживать -delete, что делает ее такой простой, как

find /home/get/public_html/audio -daystart -maxdepth 1 \
   -mtime +1 -type f -name "*.mp3" -delete
...