Гид по технологиям

Как создавать и удалять каталоги в Linux: mkdir, rm и rmdir

7 min read Linux Обновлено 31 Dec 2025
Каталоги в Linux: mkdir, rm и rmdir — руководство
Каталоги в Linux: mkdir, rm и rmdir — руководство

Человек думает рядом с ноутбуком

Директории — основа файловой системы Linux: в них хранятся файлы, конфигурации и данные сервисов. Хотя многие пользователи создают папки через графический файловый менеджер, работа в терминале даёт скорость, предсказуемость и возможность автоматизации. Этот материал охватывает базовые и продвинутые приёмы создания и удаления каталогов, примеры, сценарии отказов и практические чек‑листы.

Основные понятия

  • Каталог (directory): контейнер для файлов и других каталогов.
  • Корневой каталог (/): верхний уровень файловой системы.
  • Родительский каталог: папка на уровень выше (..).
  • Текущий каталог: папка, в которой вы находитесь (.).

Короткое определение для новичка: mkdir — создаёт папки; cd — переходит в них; ls — показывает содержимое; rm/rmdir — удаляют.

Как создать каталог из командной строки

Команда mkdir — универсальный инструмент для создания каталогов. С её помощью можно создавать один каталог, несколько сразу и даже весь путь целиком.

Создать один каталог

Простой синтаксис:

mkdir [опции] <имя_каталога>

Пример:

mkdir MUO

Эта команда создаёт директорию MUO в текущем каталоге. Чтобы перейти в неё, используйте:

cd ./MUO

Терминал Linux с примером использования mkdir

cd — гибкая команда для смены директории; относительные и абсолютные пути работают одинаково.

Создать несколько каталогов сразу

mkdir позволяет перечислять имена через пробел:

mkdir MUO_sample1 MUO_sample2 MUO_sample3

После выполнения команды появятся три папки: MUO_sample1, MUO_sample2 и MUO_sample3. Список можно проверить командой:

ls -la

Окно терминала Ubuntu с примерами создания нескольких директорий

Полезная ментальная модель: представляйте файловую систему как дерево — вы можете создать несколько ветвей (директорий) за одну операцию.

Создать каталог в другом месте без перехода туда

Вы можете указать путь прямо в команде, не меняя текущую директорию:

mkdir /home/username/Документы/ПроектX

Или использовать относительный путь:

mkdir ../ДругойПроект

Создать папку через графический интерфейс

Если вы предпочитаете GUI: щёлкните правой кнопкой мыши в нужной папке и выберите «Новая папка». После создания можно открыть терминал и проверить:

cd /путь/к/папке
ls

Контекстное меню на рабочем столе Ubuntu для создания новой папки

Иконка новой папки с полем для ввода имени на рабочем столе Ubuntu

Опции mkdir и практические примеры

Вот наиболее полезные опции mkdir:

  • -p, –parents — создаёт родительские каталоги по пути, если их ещё нет.
  • -v, –verbose — выводит сообщения о созданных каталогах.
  • –version — показывает версию и сведения о лицензии.

Примеры:

mkdir -p MUO/MUO_CHILD

Эта команда создаст MUO и MUO/MUO_CHILD, если их не было.

mkdir -v project/{src,docs,tests}

Пример выше использует расширение оболочки (brace expansion) — за одну команду создаёт три вложенные папки внутри project.

mkdir --version

Окно терминала Ubuntu с примером создания родительской директории

Терминал с примером включения verbose при создании директорий

Терминал Ubuntu с выводом версии утилиты mkdir

Удаление пустых и непустых директорий

Для удаления директорий в Linux используются две основные команды: rm и rmdir. Каждая подходит для разных ситуаций.

Общая безопасная последовательность перед удалением

  1. Перейдите в родительский каталог или убедитесь, что вы не находитесь в удаляемой директории.
  2. Просмотрите содержимое с помощью ls или tree.
  3. Сделайте резервную копию, если необходимо.
  4. Удаляйте осторожно, особенно с флагом -f.

Удаление с помощью rm

Команда rm может удалять отдельные файлы и каталоги. Для директорий используются опции -r и другие.

rm -r <имя_каталога>

Полезные опции rm:

  • -f — принудительно удаляет без подтверждений.
  • -i — запрашивает подтверждение для каждого файла/каталога.
  • -r или -R — рекурсивное удаление содержимого директорий.
  • -d — удаляет пустую директорию (иногда реализуется иначе на разных системах).

Примеры:

rm -ri old_project   # интерактивно удалить каталог с подтверждением для каждого файла
rm -rf tmp_build     # удалить без вопросов, осторожно
rm -d MUO_sample1 MUO_sample2 MUO_sample3  # попытка удалить несколько директорий (d — для пустых)

Окно терминала Ubuntu с примерами удаления нескольких директорий

Важно: rm -rf опасна — ошибочный путь приведёт к потере данных. Никогда не выполняйте её как root без проверки.

Удаление с помощью rmdir

rmdir удаляет только пустые директории. Если каталог содержит файлы или вложенные папки, rmdir вернёт ошибку.

rmdir MUO3

Если MUO3 не пустой, вы увидите сообщение об ошибке.

Сообщение об ошибке rmdir в терминале Ubuntu при попытке удалить непустую папку

Когда команда терпит неудачу — распространённые причины и как их устранить

  1. Недостаток прав (Permission denied): проверьте права доступа ls -ld <каталог>. Используйте sudo только если уверены.
  2. Каталог не пуст (rmdir): используйте rm -r или удалите содержимое отдельно.
  3. Файлы с атрибутом immutable: проверьте chattr +i; снимите атрибут chattr -i.
  4. Сетевой ресурс (NFS/SMB): возможно, файл занят другим клиентом или у вас нет прав; проверьте монтирование и locks.
  5. Симлинки: rm удалит сам симлинк, а не цель; будьте внимательны.
  6. Ошибки пути: используйте абсолютные пути или pwd, чтобы убедиться в местоположении.

Практическая методология: безопасное создание и удаление каталогов (SOP)

Шаги перед удалением каталога на продакшне:

  1. Оцените необходимость удаления и согласуйте с владельцем данных.
  2. Сделайте резервную копию или снимок (snapshot) файловой системы, если есть возможность.
  3. Проверьте размер и содержимое:
du -sh /путь/к/каталогу
tree -a /путь/к/каталогу | head -n 200
  1. Выполните интерактивное удаление для небольших структур:
rm -ri /путь/к/каталогу
  1. Для массовых операций используйте скрипт с логированием и dry‑run (пробный прогон):
find /путь/к/каталогу -type f -name '*.tmp' -print
# после проверки
find /путь/к/каталогу -type f -name '*.tmp' -delete
  1. Проверьте результат и проверьте сервисы, которые могли зависеть от удалённых файлов.

Критерии приёмки

  • Каталог удалён полностью или частично по плану.
  • Нет пострадавших сервисов.
  • Логи операции сохранены и проверены.

Роль‑ориентированные чек‑листы

Для администратора:

  • Убедиться в бэкапах и снапшотах.
  • Проверить права и владельцев (ls -la, stat).
  • Проверить, не используется ли каталог процессом (lsof, fuser).
  • Выполнить удаление в тестовой среде, затем в проде.

Для разработчика:

  • Удалять только временные артефакты (build/, node_modules/, .venv/).
  • Использовать .gitignore и CI чтобы избежать удаления нужных данных.
  • Применять локальные тесты и dry‑run.

Для обычного пользователя:

  • Проверить содержимое через графический файловый менеджер.
  • Копировать важные файлы перед удалением.
  • Использовать корзину (trash) или trash-cli вместо rm для безопасного восстановления.

Шпаргалка команд (Cheat sheet)

Создание:

mkdir имя_папки
mkdir -p /путь/к/новой/папке/включая/родителя
mkdir -v project/{src,docs,tests}

Навигация и проверка:

cd /путь/к/папке
pwd
ls -la
du -sh .

Удаление:

rmdir пустой_каталог
rm -ri каталог  # интерактивно
rm -rf каталог  # принудительно и рекурсивно — очень осторожно

Безопасные альтернативы:

  • trash-cli (команда trash-put) — отправляет в корзину вместо безвозвратного удаления.
  • Использовать git для версионности исходников.

Ментальные модели и эвристики

  • Дерево: думайте про файловую систему как про дерево — удаляете ветку, возможен эффект «отпиливания» множества подветвей.
  • Правило трёх: проверил команду, выполнил dry‑run, затем запустил с логированием.
  • Least privilege: выполняйте операции с минимально необходимыми правами.

Риски и матрица mitigations

РискВероятностьПоследствияСмягчение
Ошибочное rm -rf /Низкая (при внимательности)Критическая — потеря данныхПроверка команды, алиасы, ограничения для root
Удаление активных файловСредняяСбой сервисовlsof/fuser перед удалением, окна обслуживания
Неполные бэкапыСредняяНевозможность восстановленияРегулярные тесты резервного восстановления

(Таблица — качественная оценка, не содержит статистики.)

Совместимость и особенности разных сред

  • ext4/xfs/btrfs: базовые команды работают везде одинаково, но у btrfs есть снапшоты — используйте их для безопасного восстановления.
  • NFS/SMB: учтите, что блокировки и права могут отличаться между клиентами.
  • SELinux/AppArmor: контекст безопасности может блокировать операции; проверьте restorecon/semodule при необходимости.

Когда не стоит использовать rm -rf: альтернативы

  • Для удаления временных файлов используйте специализированные утилиты (tmpreaper, systemd‑tmpfiles).
  • Для «удаления» в пользовательском UX используйте trash-cli, чтобы сохранить возможность восстановления.
  • Для больших наборов данных рассмотрите удаление в два этапа: сначала перемещение в карантинную папку, затем удаление после проверки.

Тесты и критерии приёмки

Минимальные проверки после операции:

  • Каталог отсутствует: ls /путь
  • Сервисы работают: systemctl status
  • Логи операций сохранены и без ошибок

Простая блок‑диаграмма решения (Mermaid)

flowchart TD
  A[Нужно удалить каталог?] --> B{Каталог пустой?}
  B -- Да --> C[Использовать rmdir]
  B -- Нет --> D{Можно ли сделать бэкап?}
  D -- Да --> E[Сделать бэкап -> rm -ri]
  D -- Нет --> F[Переместить в карантин -> дождаться проверки]
  E --> G[Проверить сервисы]
  C --> G
  F --> G

Короткий глоссарий

  • mkdir — создать каталог.
  • rmdir — удалить пустой каталог.
  • rm -r — удалить рекурсивно каталог и всё внутри.
  • sudo — выполнить команду с правами администратора.

Советы по безопасности

  • Никогда не выполняйте rm -rf с подстановочными символами без проверки (например, rm -rf /tmp/*). Используйте echo и ls для проверки экспансии.
  • Настройте алиасы в ~/.bashrc для интерактивного удаления: alias rm=’rm -i’ (но учтите, что в автоматических скриптах это может мешать).
  • Логируйте все массовые операции удаления и храните логи отдельно.

Заключение

Команды mkdir, rm и rmdir — базовый набор для работы с директориями в Linux. При соблюдении простых правил безопасности (проверка путей, бэкапы, использование интерактивного режима) они позволяют быстро и надёжно управлять файловой структурой. Для продакшн‑окружений рекомендован SOP с шагом «сделать снапшот/бэкап» и проверкой зависимостей перед удалением.

Краткое резюме:

  • mkdir создаёт каталоги и поддерживает создание родительских директорий через -p.
  • Используйте rm -r / rm -rf для рекурсивного удаления и rmdir только для пустых папок.
  • Всегда проверяйте права, используйте резервные копии и интерактивный режим при сомнениях.

Важно: перед массовым удалением сделайте резервную копию и проверьте, что никто не использует файлы в целевой директории.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как скрыть MAC‑адрес: подмена и защита устройств
Кибербезопасность

Как скрыть MAC‑адрес: подмена и защита устройств

Сохраняйте маршруты в Google Maps — быстро и удобно
Навигация

Сохраняйте маршруты в Google Maps — быстро и удобно

Как исправить Google Maps на Android
Технологии

Как исправить Google Maps на Android

Идеальный отзыв в Google Maps — как написать
Отзывы

Идеальный отзыв в Google Maps — как написать

Голосовая навигация Google Maps не работает — как исправить
Android навигация

Голосовая навигация Google Maps не работает — как исправить

Подключение музыки в Google Maps
Навигация

Подключение музыки в Google Maps