Ой, ничего не найдено!

К сожалению, по вашему запросу пока ничего нет (но это только пока!), зато вы можете подписаться на нашу замечательную email-рассылку, чтобы не пропустить самое интересное в будущем.

  • 450

Как удалить миллионы файлов в Linux, если rm -rf не работает?

  • 2 минуты на чтение

Как удалить миллионы файлов в Linux, если rm -rf не работает?

При очистке директории в Linux команда

rm -rf /var/www/rs/temp/*

может не сработать, если в папке слишком много файлов. В таком случае появляется ошибка:

-bash: /bin/rm: Argument list too long

Эта ошибка связана с ограничением размера аргументов в командной строке (ARG_MAX). В Linux есть несколько способов обойти это ограничение и эффективно удалить миллионы файлов.

1. Использование find + -delete (Оптимальный способ)

Если в папке содержатся только файлы (без поддиректорий), самый простой способ очистки:

find /var/www/rs/temp/ -type f -delete

Что делает эта команда?

  • find /var/www/rs/temp/ — ищет файлы в указанной директории.
  • -type f — выбирает только файлы (без папок).
  • -delete — сразу удаляет найденные файлы.
Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Если в папке есть вложенные каталоги и их тоже нужно удалить:

find /var/www/rs/temp/ -mindepth 1 -delete

-mindepth 1 гарантирует, что сама папка /var/www/rs/temp/ не удалится, а очистится только её содержимое.

2. Очистка через rsync (Быстрое удаление)

Этот метод удобен, если файлов очень много и find работает слишком долго.

  1. Создаём пустую временную директорию:
    mkdir /empty
    
  2. Используем rsync для удаления всех файлов в /var/www/rs/temp/:
    rsync -a --delete /empty/ /var/www/rs/temp/
    
  3. Удаляем временную директорию /empty:
    rmdir /empty
    

Как это работает?
rsync -a --delete синхронизирует пустую папку с /var/www/rs/temp/, тем самым удаляя всё внутри неё.

3. Очистка через find + xargs (Для экстремально большого количества файлов)

Если find -delete медленный или выдаёт ошибки, можно передавать файлы пакетами в rm через xargs:

find /var/www/rs/temp/ -type f | xargs rm -f

Если всё равно появляется ошибка Argument list too long, попробуй вариант с -print0:

find /var/www/rs/temp/ -type f -print0 | xargs -0 rm -f
Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

В этом варианте:

  • -print0 и -0 позволяют корректно обрабатывать файлы с пробелами и спецсимволами в именах.
  • xargs передаёт файлы в rm частями, избегая ограничения ARG_MAX.

4. Полное удаление папки и её пересоздание (Радикальный метод)

Если тебе не важны права и структура внутри /var/www/rs/temp/, можно просто удалить её и создать заново:

rm -rf /var/www/rs/temp/
mkdir /var/www/rs/temp/
chown www-data:www-data /var/www/rs/temp/  # если это веб-сервер
chmod 755 /var/www/rs/temp/

Этот метод самый быстрый, но он удалит всё, включая поддиректории.

Какой способ выбрать?

image

Вывод

Когда стандартный rm -rf не срабатывает из-за ошибки "Argument list too long", у нас есть несколько решений:
find -delete — универсальный способ.
rsync --delete — быстрое удаление.
xargs — обработка больших списков файлов.
rm -rf + mkdir — если нужно удалить всё без разбора.

Если файлов миллионы, лучший вариант — rsync --delete или find -delete.

Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Теперь ты знаешь, как очистить любую папку в Linux, независимо от количества файлов!

Первый месяц бесплатно

Хостинг Siteko.net для стабильного запуска сайта

Разместите проект на Siteko.net и проверьте скорость, панель управления и поддержку без стартовой оплаты.

  • 1 месяц бесплатно для новых клиентов сразу после выбора тарифа.
  • Быстрый старт для лендинга, блога или корпоративного сайта.
  • Поддержка рядом поможет с переносом и настройкой проекта.
Выбрать тариф