Скидка 50% на все тарифы, ограниченное время. От $2.48/mo
12 мин
Серверы и ОС

Как безопасно удалить директорию в Linux: rmdir, rm -r, find

Ник Сильвер By Ник Сильвер 12 мин чтения Обновлено 22 сент. 2025 г.
Одинокий ноутбук под углом 3/4 на мокрой поверхности; на экране — две чёткие строки терминала: ls -ld -- '$DIR' и rm -I -r -- '$DIR'. Из правого порта выходит голографическая лента в голубых и пурпурных тонах — она изгибается к парящей справа бумажной папке; правый край папки растворяется в воздухе мелкой бумажной пылью. Освещение в стиле BR2049, ультрафиолетовая подсветка, капли дождя, янтарный туман натриевых ламп и едва намеченный силуэт горизонта.

Правильная команда делает удаление папок в Linux простым делом. Используйте rmdir для пустых путей, rm -r для директорий с содержимым, и найдите когда нужно очистить только содержимое. Вот как удалить директорию в Linux, с безопасными настройками по умолчанию, быстрой проверкой и исправлением ошибок, которые могут помешать. Если нужно быстро разобраться, взгляните на сводную таблицу, а затем читайте дальше о мерах предосторожности.

 

 

Обзор команд: скопируй, применяй, двигайся дальше

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

Задача Самая безопасная быстрая команда Дополнительные флаги и примечания
Удалить пустую директорию rmdir ПАПКА or rm -d DIR Добавьте -p чтобы удалить родительские директории, если они тоже окажутся пустыми.
Удалить непустую директорию с одним запросом подтверждения rm -I -r DIR Оптимальный баланс скорости и безопасности.
Принудительно удалить непустую директорию rm -rf — DIR Проверьте с помощью ls -ld — DIR перед запуском.
Сохранить папку, очистить содержимое find DIR -mindepth 1 -delete Удаляет также скрытые файлы и папки.
Удалить только пустые директории найти DIR -type d -empty -delete Удобно запускать после деплоя.
Удалить по шаблону имени find DIR -type d -name 'cache*' -prune -exec rm -rf {} + Быстро работает на больших деревьях каталогов.

Держите эту шпаргалку под рукой, пока разбираетесь, как удалить директорию в Linux. 

Удаление пустых директорий с помощью rmdir or rm -d

Ультрареалистичный стальной ящик картотечного шкафа, полностью выдвинутый на направляющих с войлочными прокладками, абсолютно пустой. На передней панели маленькие тиснёные наклейки: RMDIR и EMPTY. За ним мягкий янтарно-натриевый свет и едва различимый силуэт городского горизонта; циановые вывески отблёскивают вдоль шлифованного металлического края; микроцарапины и потёртости выглядят совершенно натурально.

Пустые директории — это самый безопасный случай. Если нужно удалить конечную директорию, rmdir справится с этим; если вы предпочитаете оставаться на rm, используйте rm -d для того же результата. Обе команды останавливаются на непустых путях, что даёт удобную защиту тем, кто только учится удалять директории в терминале.

  • rmdir PROJECT/tmp удаляет пустую папку и завершается без вывода, если она больше не существует.
  • rmdir -p foo/bar/baz удаляет путь, а затем родительские директории, если каждая из них стала пустой — одной командой убирает всё scaffolding.
  • rm -d empty_folder удаляет только пустую директорию — аналог rmdir для тех, кто работает на rm.
  • rmdir –ignore-fail-on-non-empty DIR скрывает сообщение об ошибке «не пуста» в скриптах, где лишний вывод нежелателен.
  • Добавьте -v для обратной связи, например, rmdir -pv foo/bar/baz.

Типичная проблема при попытке удалить директорию в Linux: если в папке ещё есть файлы, rmdir команда не выполнится. Это сигнал перейти к рекурсивному удалению. 

Читайте также: Подключитесь к серверу Linux с помощью XRDP

Удаление непустых директорий с помощью rm

Сверхреалистичный промышленный шредер крупным планом: в загрузочное отверстие заправлено несколько манильских папок с разделителями, явно набитых бумагой. На передней панели — небольшая металлическая табличка с надписью RM -R, рядом с ней — треугольный знак опасности с надписью FORCE.

Рекурсивное удаление — это rm -r or rm -rf. Компромисс здесь простой: скорость против подтверждений. Те, кто только учится удалять непустые директории в Linux, начинают с rm -r и добавьте промпт. Команды, которые автоматизируют, добавляют -f после того как фиксируют проверки пути.

Начните с режимов, которые дают уверенность:

  • Промпт один раз: rm -I -r DIR спрашивает один раз перед рекурсивным спуском — удобнее, чем -i на больших деревьях каталогов.
  • Промпт на каждый файл: rm -ri DIR работает медленно, но наглядно на небольших деревьях, когда нужно видеть каждый шаг.
  • Принудительное рекурсивное удаление: rm -rf DIR пропускает запросы подтверждения и большинство ошибок; проверяйте через pwd, ls -ld — DIR, и echo "$DIR" перед тем как нажать Enter.
  • Подробный вывод: -v печатает каждый удалённый путь, например, rm -rfv build/.
  • Защита корня и точек монтирования: современные системы блокируют rm -rf / через –preserve-root; в скриптах добавляйте –один-файловая-система чтобы не выйти за пределы точки монтирования.

Перед принудительным удалением на рабочей машине потратьте полминуты на проверку цели. Убедитесь в правильности пути с помощью ls -ld — "$DIR", затем обратите внимание на кавычки и glob-шаблоны. Лучший способ разобраться, как удалить директорию в Linux — попробовать -I сначала в интерактивном режиме, а затем повторить без него. Спокойная проверка, повторяемые привычки.

linux-vps Хостинг Linux без лишних сложностей

Хотите удобнее размещать сайты и веб-приложения? Разрабатываете что-то новое? Просто не нравится Windows? Именно для этого у нас есть Linux VPS.

Получите свой Linux VPS

Необычные имена, ведущие дефисы и скрытые проблемы

Полоса предупредительной ленты, туго натянутая поперёк кадра. Сверхреалистичная виниловая текстура с едва заметными складками. Чёрные надписи повторяют -TMP через равные промежутки после каждого слова CAUTION.

Некоторые пути начинаются с дефиса или содержат байты, которые сбивают парсер. Передайте чтобы завершить разбор опций, или добавьте ./ перед именем.

Безопасная работа с нестандартными именами:

rm -r -- --weird
rm -r ./-cache

Эти простые привычки делают удаление директорий в Linux значительно менее рискованным на общих серверах и в удалённых сессиях. Если нужно сохранить родительскую директорию и удалить только её содержимое, переходите к командам с учётом глубины — об этом рассказывает следующий раздел руководства по удалению директорий в Linux.

Сохранить папку, очистить содержимое

Сверхреалистичная папка из крафт-картона с небольшим люком в нижней части угла со стороны корешка. Люк на петлях, слегка приоткрыт — из него сыплется едва заметный поток голографических «фрагментов файлов». На корешке выгравировано: FIND и MIND1 (для -mindepth 1)

Во многих задачах нужна пустая директория, а не отсутствующая. Ротация логов, конвейеры сборки, обслуживание VPS. Два подхода решают задачу: удалить все файлы в директории Linux, оставив родительскую нетронутой.

  • Пропустить родительскую директорию с помощью найдите:
find /var/tmp/app -mindepth 1 -delete
  • Или выполнить rm для группы файлов:
find ./cache -mindepth 1 -exec rm -rf {} +

Оба варианта обрабатывают скрытые записи (включая dotfiles), которые пропускает простая команда rm * Если вам нужно удалить все файлы в директории Linux — это надёжный способ.

Однострочные команды удобны, но многим командам нужна фильтрация по имени или глубине. Именно для этого найдите даёт точный контроль без лишних догадок.

Читайте также: Список запущенных служб в Linux

Точечное удаление с помощью найдите: имена, глубина, исключения

Иногда нужно удалить только кэш-деревья, только папки сборки первого уровня или только архивные логи. Вот компактный набор шаблонов для задач find удалить директорию .

Задача Краткая справка по командам Примечания
Только удаление cache*/ директории в проекте find . -type d -name 'cache*' -prune -exec rm -rf {} + -prune не заходит в найденные директории рекурсивно — быстрее работает на больших деревьях файлов.
Удаление директорий по глубине find ./dist -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} + Затрагивает только дочерние элементы первого уровня в dist/.
Удаление только пустых директорий find . -type d -empty -delete Удобно запускать после деплоя.
Удаление файлов по шаблону find logs -type f -name '*.gz' -delete Свежие логи остаются нетронутыми.
Удалить всё содержимое, сохранив родительскую директорию find /data/tmp -mindepth 1 -delete Сервисы продолжают использовать родительскую директорию.

Используйте -print для пробного запуска, а затем уберите его для реального. Это и есть практическая сторона удаления директорий на Linux: предсказуемая область действия при быстром выполнении. Gotcha, на некоторых минимальных сборках BusyBox флаг -delete отсутствует — используйте -exec rm -rf {} + вместо него.

Эти подходы дадут хороший результат. Добавьте несколько ограничений, чтобы избежать редких, но дорогостоящих ошибок.

Меры защиты от случайных ошибок

Сверхреалистичный замок с дужкой и запорной скобой для блокировки/маркировки оборудования — крупный план: матовая сталь и потёртая красная эмаль, капля конденсата на дужке; к скобе прикреплён волоконный предохранительный ярлык с тремя чёткими гравировками: RM -I, ONE FS, PRESERVE ROOT.

Мощные команды требуют осторожных настроек по умолчанию. Выработайте эти привычки, чтобы удаление директории в Linux с помощью команд не лишало вас рассудка.

  • Предпочтите один запрос с rm -I -r DIR пока проверяете путь на экране.
  • Всегда берите пути в кавычки: rm -rf — "$DIR" защищает от пробелов, glob-шаблонов и имён, начинающихся с дефиса.
  • Убедитесь в точности цели: ls -ld — "$DIR" выводит одну строку с режимом, владельцем и путём.
  • Оставаясь в пределах файловой системы: rm -rf –one-file-system "$DIR" предотвращает переход на примонтированные тома.
  • Оставьте защиту root включённой, сохраните –preserve-root на месте.
  • Снимайте бит неизменяемости при необходимости: lsattr -d "$DIR" для проверки, chattr -i "$DIR" для его снятия.

Если удаление всё равно не срабатывает или зависает, проверьте наиболее вероятные причины.

Проверьте очистку на VPS Linux от Cloudzy, затем продолжайте работу

Ultrareal 1U rack server sits firmly on a cloud (cloud = VPS). A short SFP+ fiber patch links the server to an open laptop at 3/4 angle. On the laptop's glassy terminal, two big stacked engravings: RM -I -R and ROLLBACK (toggle dot lit). On the rack face, small badges: NVME, 10 GBPS, DDR5.

Если вам нужен стабильный удалённый сервер для безопасного тестирования rm, rmdir, и найдите запустите Linux VPS хостинг и работать в чистой оболочке. Это доступно по цене, быстро и доступно в 12 регионах по всему миру с 11 дистрибутивах Linux готово к работе. Вы получаете root, хранилище NVMe SSD хранилища и DDR5 RAM на современных тарифах, а также защита DDoS и Аптайм 99,95% без долгосрочных обязательств. Высокая пропускная способность и низкая задержка входят в пакет, со скоростью соединения до 10 Gbps указано в карточках тарифов.

  • Глобальная инфраструктура: развёртывайте серверы в более чем 12 локациях, включая Нью-Йорк, Лос-Анджелес, Майами, Амстердам, Лондон, Германию, Швейцарию, Юту, Даллас, Лас-Вегас и Сингапур — ближе к вашим пользователям.
  • Root-доступ + 11 дистрибутивов: выберите нужный Linux и сохраняйте полный контроль с первого дня.
  • Современное железо: хранилище NVMe SSD и процессоры DDR5 RAM обеспечивают стабильную производительность даже при высокой нагрузке I/O.
  • Сеть и доступность: низкая задержка, высокая пропускная способность и целевой показатель uptime 99,95% помогают запланированным задачам выполняться точно по расписанию.
  • Безопасность: защита DDoS включена для всех серверов, так что плановое обслуживание с меньшей вероятностью прервёт работу.
  • Удобство: предустановленные ОС, бесплатный IPv6 и несколько способов оплаты делают настройку простой.

Предпочитаете полноценный рабочий стол? При оформлении заказа выберите Linux RDP приложение в один клик. Вы получите Linux VPS с XRDP, GDM3, а также GNOME GUI интерфейс предустановленным на Ubuntu, поэтому вы можете подключиться удалённо в один клик. Работает в тех же 12 локациях и сохраняет Аптайм 99,95% цель. При этом никаких дополнительных платежей за предустановленную конфигурацию RDP.

Коротко: запустите доступный Linux VPS, выберите дистрибутив, сохраните root-доступ и, при необходимости, добавьте рабочий стол Linux RDP при покупке. Затем практикуйте удаление в интерактивном режиме, делайте снимки и повторяйте, пока набор команд не станет привычным.

Устранение проблем: «Отказано в доступе», «Директория не пуста», занятые пути

Одна крупная папка, нависающая над узким жёлобом (жёлоб символизирует устранение неполадок, на нём должен быть соответствующий значок); внутри папки - вложенные подпапки и едва заметные иконки .dotfiles, исчезающие по мере падения. Надписи на жёлобе сверху вниз: SYMPTOM, CHECK, FIX; на противоположной стороне: NOT EMPTY, LOOK, FIND -DELETE.

Большинство сбоев укладываются в несколько типичных сценариев. Используйте этот подход: симптом → проверка → исправление, чтобы удаление директории в Linux не блокировало деплой.

1) «Permission denied» для директории, которой вы владеете
Проверьте атрибуты командой lsattr -d DIR. Если установлен флаг immutable, i снимите его командой sudo chattr -i DIR, затем повторите попытку. Такое встречается на защищённых системах и в некоторых контейнерах.

2) «Operation not permitted» даже с sudo
Убедитесь, что точка монтирования не находится в режиме только для чтения. mount | grep DIR or findmnt DIR покажет текущее состояние. Перемонтируйте в режим записи или выберите другой путь.

3) «Directory not empty» после rmdir
Записи всё ещё существуют. Используйте:

find DIR -mindepth 1 -delete

Команда учитывает скрытые файлы и вложенное содержимое.

4) Сервис воссоздаёт папку
Запущенный процесс пишет по этому пути. Остановите или корректно перезапустите его, затем удаляйте. Если окружение неисправно, обратитесь к руководству по systemctl команда не найдена поможет сначала разобраться с этим. Для примера: у нас был Nginx, который писал в /var/log/nginx/ на тестовом сервере; после остановки nginx.service очистилось lsof, удаление прошло успешно, и логи снова начали писаться нормально.

5) «Device or resource busy»
Какой-то процесс держит открытый дескриптор внутри директории. lsof +D КАТАЛОГ or fuser -vm КАТАЛОГ показывает, что активно. Остановите процесс корректно, затем удаляйте. Если нужно быстро проверить сокеты перед очисткой логов, обратитесь к разделу Linux команда Netstat — там описана быстрая проверка.

6) Странные имена: пробелы, переносы строк или начальный дефис
Используйте or ./ перед именами, начинающимися с дефиса, и берите каждую строку в кавычки. Для массовой очистки файлов с нестандартными именами используйте find . -print0 | xargs -0 — тогда пробелы не сломают команду.

После этих исправлений большинство проблем исчезнет. Если постоянное удаление не нужно, воспользуйтесь корзиной.

Корзина вместо удаления: trash-cli и Корзина

Ультрареалистичная синяя корзина на рабочем столе (матовый пластик с едва заметными следами литья, щелевое отверстие), из щели выглядывает краешек сложенной бумажной папки. На краю выгравировано: TRASH-CLI, TRASH. Небольшой боковой значок светится надписью RESTORE, намекая на возможность восстановления.

Не всё нужно удалять навсегда. Графические окружения и серверы с поддержкой GLib умеют работать с корзиной — можно просмотреть файлы и восстановить их при необходимости. Если вы только изучаете, как удалить директорию в Linux, и хотите подстраховаться, попробуйте следующее:

  • gio trash ПУТЬ перемещает файлы и директории в корзину; gio list trash:// позволяет просматривать содержимое корзины.
  • При том, что trash-cli, используйте удалить PATH, trash-list, trash-restore, и trash-empty для простого рабочего процесса в командной строке.

Он медленнее, чем rm, но дополнительный шаг подтверждения оправдывает себя, если нужна пауза перед удалением. Так что, если вы хотите узнать, как удалить директорию в Linux без риска потерять реальные данные, начните с trash, а затем переходите к rm.

Итоги

Теперь у вас есть полный набор инструментов для удаления директорий в Linux, в который входят rmdir для пустых путей, rm -I -r для безопасной рекурсии, rm -rf только после проверки целевой директории, и find -mindepth 1 -delete когда нужно очистить содержимое, не удаляя саму папку. Заключайте пути в кавычки, используйте –preserve-root, работайте в пределах одной файловой системы и снимайте атрибут неизменяемости, если он блокирует удаление — остальное покрывают шаги по устранению неполадок.

И не забывайте: если вам нужен чистый удалённый сервер для практики в реальных условиях, запустите Cloudzy Linux VPS сервер — доступный и надёжный для безопасных тестов. А благодаря нашей однокликовый Linux RDP вы также получаете графическую сессию рабочего стола, в которой можно пошагово выполнять удаление через полноценный GUI.

 

Часто задаваемые вопросы

В чём разница между rm и rmdir?

rmdir удаляет только пустые директории и может удалять родительские каталоги, ставшие пустыми, с флагом -p. rm удаляет файлы и директории: добавьте -r для рекурсии и -I или -i для подтверждения перед удалением.

Как принудительно удалить папку со всем содержимым?

Используйте rm -rf — DIR после проверки пути. Добавьте -v, если нужен построчный журнал операций. Некоторые администраторы предварительно делают тестовый проход с rm -I -r перед финальным запуском.

Как удалить содержимое директории, не удаляя её саму?

Выполните find DIR -mindepth 1 -delete. Эта команда очищает директорию в Linux, сохраняя родительскую папку — что важно для корректной работы сервисов.

Почему rmdir выдаёт «Directory not empty», если файлов не видно?

В директории есть скрытые файлы. Команда ls -A их покажет — после этого используйте паттерн find -mindepth 1 -delete.

Как исправить ошибки «Operation not permitted» или «Permission denied»?

Проверьте флаг неизменяемости командой lsattr -d DIR и снимите его через sudo chattr -i DIR, если он установлен. Также убедитесь, что раздел не смонтирован в режиме только для чтения. Если сервис заново создаёт пути во время очистки, сначала разберитесь с проблемой в юните — ссылка на раздел про systemctl выше поможет.

Поделиться

Другие статьи блога

Читать дальше.

Лучшие self-hosted приложения для запуска с Cosmos Cloud — обложка с панелями приложений вокруг дашборда Cosmos.
Серверы и ОС

Лучшие self-hosted приложения для Cosmos Cloud: файлы, медиа, пароли, автоматизация и не только!

Maybe вы уже настроили Cosmos Cloud и хотите понять, какие приложения с ним хорошо сочетаются, или ещё не определились с Cosmos и просто хотите оценить, насколько он вписывается в ваш рабочий процесс

Ник СильверНик Сильвер 16 мин. чтения
Portainer vs Cosmos Cloud для управления приложениями Docker: обложка с диаграммой гибридной настройки и блоками neon ops и доступа.
Серверы и ОС

Portainer vs Cosmos Cloud: что лучше подходит для управления приложениями Docker

Если вы уже знакомы с Docker и хотите найти удобный способ запустить растущий стек приложений, вот короткий ответ на вопрос Portainer vs Cosmos Cloud. Portainer — более сильный выбор для прямого

Ник СильверНик Сильвер 14 мин. чтения
Cosmos Cloud vs CasaOS vs Umbrel: графика со сравнением трёх вариантов самостоятельного хостинга внутри абстрактной облачной сети.
Серверы и ОС

Cosmos Cloud vs CasaOS vs Umbrel: какая платформа для самостоятельного хостинга подойдёт вам?

Если коротко: CasaOS по-прежнему проще всего для старта, Umbrel выглядит наиболее аккуратно и продуманно, а Cosmos Cloud имеет смысл, когда нужен более жёсткий контроль над доме

Ник СильверНик Сильвер 11 мин. чтения

Готовы к деплою? От $2.48/мес.

Независимый облачный провайдер с 2008 года. AMD EPYC, NVMe, 40 Gbps. Возврат средств в течение 14 дней.