/bin/rm: Argument list too long. Слишком длинный список аргументов

При попытке удалить большого количества файлов по маске, например при удалении несколько миллионов  с расширением txt появляется ошибка Argument list too long(Слишком длинный список аргументов).

# rm -f *.txt
-bash: /usr/bin/rm: Argument list too long

Аналогично если использовать  find

[root@localhost dir]# find . -name *.txt | xargs rm
-bash: /usr/bin/find: Слишком длинный список аргументов
rm: пропущен операнд

Все это из за того что файлов больше чем допустимый лимит, проверить который можно командой

getconf ARG_MAX

Т.е в нашем случае если количество файлов больше 2097152, то удалить их командой rm не получится. Для удаления  воспользуйтесь следующими командами. Например что бы удалит все файлы .jpg

С помощью ls и grep

ls | grep .jpg| xargs rm

Используя echo.

echo *.jpg | xargs -n 100 rm

Существуют множество других решений, например с помощью цикла for или скриптов, но по мне эти 2 способа самые удобные и легко запоминающиеся.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

 

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: