Ограничение команды rm в linux
Апрель28
Первый раз столкнулся с данной проблемой — у команды rm оказывается есть ограничение при работе с маской.
Если хотим удалить слишком много файлов с помощью команды rm и маски — то возникает ошибка:
rm: Argument list too long
Команда rm корректно обрабатывает маски до 1024 файлов, если их больше — то она уже не справляется.
[user@feanor184]$ rm -rf 'files_marth_*' -bash: /bin/rm: Argument list too long
Самый простой, на мой взгляд, вариант решения проблемы, использовать xargs:
[user@feanor184]$ find . -name 'files_marth_*' | xargs rm -rf
С ее помощью мы можем применять маску к любому количеству файлов, нужно только помнить, что если там действительно много файлов, то выполнение через find — может быть не самым быстрым решением. В идеале — такого лучше не допускать и все идентичные файлы лучше стараться держать по папкам.
Спасибо за интересный вариант решения данной проблемы, будем смотреть)
Интересная операционка Linux, впервые с ней столкнулась у себя на работе. Спасибо за совет)
спасибо за информацию. Пошел проверять на практике)
Добрый день! Внимательно изучил вашу статью, считаю её одной из самых полезных на данный момент. Прошу и дальше писать подобные статьи. Всех благ.
В принципе пора бы уже расширить rm, ибо ограничение в 1024 есть рудимент той эпохи, когда это значило «много»
Тоже заметил такую странность. Долго не мог понять почему.
Очень хорошая статья! Сталf работать по этой схеме, она сильно упростило и ускорила работу.