Удаление большого количества файлов приводит к «слишком длинному списку аргументов» [дубликат]

На этот вопрос уже есть ответ здесь:

У меня 280 тысяч фотографий, которые нужно удалить в папку, но некоторые видео оставить. В папке я дал команду: #rm * .jpg , но получаю «слишком длинный список аргументов». Когда я создаю аргумент для удаления некоторых фотографий, он работает с меньшим набором, например: # rm 104 - *. Jpg.

Как я могу эффективно удалить все файлы JPEG в каталоге, не получая сообщения «Список аргументов слишком длинный»?

#rm -f * .jpg дает то же сообщение.

Enter image description here

При открытии папки в Caja используется слишком много памяти и происходит сбой. Я использую Ubuntu MATE .

2
задан 23 June 2018 в 19:39

2 ответа

Типичным способом обработки ошибки «список аргументов слишком длинный» является команда find:

find  -maxdepth 1 -mindepth 1 -type f -name "*.jpg" -delete
12
ответ дан 2 December 2019 в 01:25

Вы можете использовать xargs:

printf '%s\0' *.jpg | xargs -0 rm --

В bash команда printf является встроенной и не подчиняется тем же ограничениям длины аргумента.

8
ответ дан 2 December 2019 в 01:25

Другие вопросы по тегам:

Похожие вопросы: