Измените команду на ту, которая не разветвляется и не использует ресурсы

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

Вопрос

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

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

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

  

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

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

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

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

Это было полезно?

Решение

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

 find /home/get/public_html/audio -daystart -maxdepth 1 -mtime +1 
    -type f -name "*.mp3" -exec rm -f {} \;

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top