Измените команду на ту, которая не разветвляется и не использует ресурсы
-
22-07-2019 - |
Вопрос
У меня есть следующая команда, которая удаляет файлы, которым исполнился один день, и которые имеют тип 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?