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

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

  • 74

Как удалить миллионы файлов в 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 — сразу удаляет найденные файлы.
Бесплатный хостинг на 6 месяцев для новых пользователей!
Примените промокод FREE6MONTH и получите высокоскоростной хостинг без оплаты.

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

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
Бесплатный хостинг на 6 месяцев для новых пользователей!
Примените промокод FREE6MONTH и получите высокоскоростной хостинг без оплаты.

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

  • -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.

Получите 6 месяцев бесплатного хостинга!
Воспользуйтесь нашим промокодом FREE6MONTH и начните свой проект без лишних затрат.

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

Хостинг, на который можно положиться!
Siteko.net

Устали от медленного хостинга или дорогих тарифов? Тогда вам к нам! Siteko.net — это быстрый и простой хостинг для тех, кто ценит удобство и стабильность.

  • Без падений и нервов — наш uptime почти всегда 100%.
  • Гибкие тарифы — только нужные функции, ничего лишнего.
  • Скорость— сайты грузятся, как пуля!
  • Удобно — разобраться сможет даже новичок, всё под рукой.
  • Поддержка всегда рядом 24/7 поможем решить любой вопрос.

Заходите на Siteko.net и попробуйте нас бесплатно первый месяц! Мы делаем всё, чтобы ваш сайт работал без проблем.

Siteko.net — просто, быстро и надёжно!