/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 способа самые удобные и легко запоминающиеся.
When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.