Перейти до основного вмісту
Знижка 50% усі плани, обмежений час. Від $2.48/mo
12 min left
Сервери та ОС

Як безпечно видалити каталог у Linux: rmdir, rm -r, find

Nick Silver Автор: Nick Silver 12 хв читання Оновлено Sep 22, 2025
A lone ultrareal laptop at 3/4 angle on a wet surface; screen shows two crisp terminal lines: ls -ld -- '$DIR' rm -I -r -- '$DIR' From the right-side port, a cyan/magenta holographic ribbon curves out to a manila folder floating to the right of the laptop; the folder’s right half frays into fine paper dust mid-air. BR2049 lighting, UV rim, subtle rain specks, sodium-amber haze + single low skyline only.

Виберіть правильний інструмент, і видалення папок на Linux стане такою ж простою справою. Використовуйте rmdir для порожніх шляхів, rm -r для директорій, які ще містять файли, і знайти коли потрібно очистити тільки вміст. Це як видалити директорію в Linux, з безпечними налаштуваннями за замовчуванням, швидкими перевірками та виправленнями помилок, які заважають. Якщо швидкість – ваш пріоритет, швидко переглерніть таблицю порівняння, а потім читайте далі, щоб дізнатися про механізми захисту.

 

 

Огляд команд: копіюй, вставляй, рухайся далі

Перш ніж углиблюватися в деталі, ось найчастіше використовувані операції в одному місці. Копіюй з середньої колонки, потім застосуй замітку.

Завдання Найбезпечніша швидка команда Додаткові прапори та замітки
Видалити порожню директорію видалити каталог DIR 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

Ultrareal steel file-cabinet drawer pulled fully open, rails and felt pads visible, absolutely empty. Tiny embossed stickers on the front: RMDIR and EMPTY. A soft sodium-amber haze drifts behind a faint skyline silhouette; cyan signage glints along the brushed metal lip; micromotes and hairline scratches read true.

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

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

Поширена проблема при видаленні каталогу на Linux полягає в тому, що якщо папка містить файли, rmdir відмовляється працювати. Це сигнал переходити на рекурсію. 

Читайте також: Підключіться до сервера Linux за допомогою XRDP

Видалення непорожніх каталогів за допомогою rm

Ultrareal industrial paper shredder as the single hero; mouth loaded with multiple manila folders and dividers. The folders are clearly stuffed with paper. A tiny metal badge on the front reads RM -R; a small hazard triangle beside it reads 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, і an echo "$DIR" перед тим як натиснути Enter.
  • Детальний режим: -v виводить кожен видалений шлях, наприклад, rm -rfv build/.
  • Захист кореня й монтування: сучасні системи блокують rm -rf / через –preserve-root; у скриптах додайте –one-file-system щоб ви не перетинали точки монтування.

Перед будь-якою примусовою видаленням на завантаженій машині витратьте півхвилини на перевірку цілі. Виведіть її за допомогою ls -ld — "$DIR", потім подивіться на лапки й глоби. Чистий спосіб навчитися видаляти директорію в Linux — спробувати -I спочатку, потім повторити неінтерактивно. Спокійні перевірки, повторювані звички.

linux-vps Linux-хостинг спрощено

Хочете кращий спосіб хостити сайти та веб-додатки? Розробляєте щось нове? Просто не любите Windows? Саме тому в нас є Linux VPS.

Отримайте свій Linux VPS

Незвичайні імена, дефіси на початку та приховані ловушки

A stretch of caution tape pulled taut across frame, ultrareal vinyl texture with subtle wrinkles. Black print repeats -TMP at intervals after each CAUTION.

Деякі шляхи починаються з дефіса або містять байти, що збивають парсинг. Передайте щоб зупинити парсинг опцій, або додайте ./ перед назвою.

Безпечні способи вибору незвичайних назв:

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

Ці маленькі звички роблять видалення директорії в Linux набагато менш стресовим на спільних серверах і дистанційних сеансах. Якщо потрібно зберегти батьківську директорію, але видалити вміст, перейдіть до команд, що знають про глибину; це далі в нашому посібнику «Як видалити директорію в Linux».

Зберегти папку, очистити те, що в ній

Ultrareal manila folder with a small bottom trapdoor built into the tab-side corner, hinged and slightly open so a faint stream of holographic “file shards” falls away. Etched on the tab: FIND and MIND1 (for -mindepth 1)

Багато завдань потребує чистої директорії замість відсутної. Ротація логів, pipeline-и збірки, прибирання. Два підходи охоплюють видалення всіх файлів у директорії в Linux без зачеплення батьківської папки.

  • Пропустити батьківську папку з знайти:
find /var/tmp/app -mindepth 1 -delete
  • Або виконай rm на партіях:
find ./cache -mindepth 1 -exec rm -rf {} +

Обидва обробляють приховані файли (включно з dotfiles), де простий rm * їх пропускає. Якщо ви шукаєте спосіб видалити всі файли у директорії в Linux, це надійний варіант.

One-liners допомагають, але багато команд потребують фільтрації за іменем або глибиною. Тут допомагає знайти — дає вам контроль без здогадів.

Читайте також: Список активних сервісів на 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/.
Видалити тільки порожні директорії знайти . -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 {} + замість цього.

Ці шаблони розведуть вас далеко. Додайте кілька запобіжників, щоб запобігти рідкій, дорогій помилці.

Запобіжники, які врятують вас від вас самих

An ultrareal lockout/tagout padlock + hasp assembly as the lone hero, brushed steel and scuffed red enamel, bead of condensation on the shackle; a fiber safety tag hangs from the hasp with three bold engravings: RM -I, ONE FS, PRESERVE ROOT.

Потужні команди потребують спокійних типових налаштувань. Виробіть ці звички, щоб видалення директорії в Linux за допомогою команд не видалило також вашу розсудливість.

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

Якщо видалення все ще не вдається або зависає, перевірте звичні підозрювані.

Запустіть тести очищення на Linux VPS від 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 хостинг і працювати в чистій оболонці. Це доступно, швидко й наявно в 13 регіонів з 11 дистрибутивів Linux готовий до роботи. Ви отримуєте root доступ, сховище NVMe SSD сховище та DDR5 RAM на сучасних планах, плюс Захист від DDoS і а 99.95% часу безперебійної роботи зобов'язання. Висока пропускна спроможність і низька затримка є частиною пакета, з з'єднаннями аж до 10 Gbps перелічених на картах плану.

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

Віддаєте перевагу повноцінному робочому столу? На сторінці оформлення замовлення виберіть Linux RDP додаток з одним кліком. Він надає Linux VPS з XRDP, GDM3I need more context to translate "and the". Could you provide the complete phrase or sentence you'd like translated to Ukrainian? GNOME графічний інтерфейс встановлено на Ubuntu, щоб ви могли підключатися віддалено одним кліком. Він працює в тих же 12 локаціях і зберігає 99.95% часу безперебійної роботи мета. Там є без додаткової плати для попередньо встановленої конфігурації RDP.

Коротко: запустіть доступний Linux VPS, виберіть дистрибутив, отримайте адміністративний доступ, а якщо потрібно, додайте робочий стіл Linux RDP під час покупки. Потім практикуйте видалення в інтерактивному режимі, робіть снімки та повторюйте, доки команди не станете виконувати на автоматі.

Усунення проблем: «Permission Denied», «Directory Not Empty», зайняті шляхи

A single ultrareal folder perched over a narrow chute (this chute symbolizes troubleshooting, so engrave it with a troubleshooting icon); inside it, smaller sub-folders and faint .dotfiles icons fade as they drop. Lip engravings top-to-bottom on the chute: SYMPTOM, CHECK, FIX; opposite side: NOT EMPTY, LOOK, FIND -DELETE.

Більшість збоїв укладаються в кілька сценаріїв. Використовуйте цей потік симптом → перевірка → вирішення, щоб видалення каталогу в Linux не затримало ваше розгортання.

1) "Доступ заборонено" до каталогу, що вам належить
Перевірте атрибути командою lsattr -d DIR. Якщо встановлено прапор незмінюваності i вимкніть його командою sudo chattr -i DIR, потім повторіть спробу. Це траплялось на загартованих системах і деяких контейнерах.

2) "Операція не дозволена" навіть з sudo
Переконайтеся, що монтування не має режиму "тільки для читання". mount | grep DIR or findmnt DIR покаже стан. Перемонтуйте як доступне для запису або оберіть іншу папку.

3) "Каталог не порожній" після rmdir
Записи все ще присутні. Перейдіть на:

find DIR -mindepth 1 -delete

Включає приховані файли та вкладений вміст.

4) Сервіс перестворює папку
Запущений процес записує в цей шлях. Зупиніть або перезавантажте чисто, потім видаліть. Якщо саме середовище пошкоджене, інструкція на команда systemctl не знайдена допоможе вам спочатку це виправити. Приклад: у нас Nginx писав у /var/log/nginx/ на staging-сервері; після зупинки nginx.service очищено lsofвидалення вдалося, і логи відновилися чисто.

5) «Device or resource busy»
Процес утримує відкритий дескриптор в межах директорії. lsof +D ДИРЕКТОРІЯ or fuser -vm КАТАЛОГ показує, що активне; зупиніть це чисто, потім видаліть. Коли вам потрібен швидкий перегляд сокетів перед видаленням логів, Команда Linux Netstat дає швидку перевірку.

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

З цими виправленнями більшість перешкод усунено. Якщо постійне видалення не входить у план, використовуйте замість цього корзину.

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

Ultrareal blue desktop recycling bin (matte polymer with tiny injection marks, slot opening), a folded paper folder edge peeking at the slot. Etched along the lip: TRASH-CLI, TRASH. A small side badge glows RESTORE to suggest reversal.

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

  • gio смітник PATH переміщує файли й директорії до корзини; 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 одним клацанням ви також отримуєте сеанс робочого столу, щоб пройти видалення у повноцінному графічному інтерфейсі.

 

Часто задавані питання

Яка різниця між 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, якщо присутній. Також переконайтесь, що монтування не є лише для читання. Якщо сервіс відновлює шляхи під час очищення, спочатку вирішіть проблему з unit; посилання на systemctl вище допомагає.

Share

Більше з блогу

Продовжуйте читати.

Готові розгортати? Від $2,48/міс.

Незалежна хмара з 2008 року. AMD EPYC, NVMe, 40 Gbps. Повернення коштів за 14 днів.