На этот вопрос уже есть ответ здесь:
У меня 280 тысяч фотографий, которые нужно удалить в папку, но некоторые видео оставить.
В папке я дал команду: #rm * .jpg
, но получаю «слишком длинный список аргументов». Когда я создаю аргумент для удаления некоторых фотографий, он работает с меньшим набором, например: # rm 104 - *. Jpg.
Как я могу эффективно удалить все файлы JPEG в каталоге, не получая сообщения «Список аргументов слишком длинный»?
#rm -f * .jpg
дает то же сообщение.
При открытии папки в Caja используется слишком много памяти и происходит сбой. Я использую Ubuntu MATE .
Типичным способом обработки ошибки «список аргументов слишком длинный» является команда find
:
find -maxdepth 1 -mindepth 1 -type f -name "*.jpg" -delete
Вы можете использовать xargs
:
printf '%s\0' *.jpg | xargs -0 rm --
В bash
команда printf
является встроенной и не подчиняется тем же ограничениям длины аргумента.