Вики / Базовые команды
mkdir — создание каталогов
Создание каталогов: -p (с родителями), -m (права сразу), вложенные {скобки}, rmdir.
mkdir (make directory) создаёт каталоги. Пустой каталог удаляется rmdir,
непустой — rm -r (осторожно, см. files-basics).
Главный ключ для новичка — -p: создаёт всю цепочку родительских каталогов
и не ругается, если каталог уже есть.
mkdir reports # один каталог в текущем
mkdir a b c # сразу несколько
mkdir -p proj/src/api # -p: создать ВСЮ цепочку (proj и proj/src тоже)
mkdir -p logs # -p ещё и не падает, если logs уже есть (удобно в скриптах)
mkdir -m 700 ~/.secrets # -m: сразу выставить права (здесь — только владельцу)
mkdir -v new # -v: печатать, что создано (verbose)
mkdir -p site/{css,js,img} # раскрытие скобок bash → site/css site/js site/img
mkdir -p data/{2024,2025}/{01,02} # комбинации: data/2024/01 … data/2025/02
Основные ключи:
| Ключ | Что делает |
|---|---|
-p, --parents |
создать родителей по пути; не ошибка, если уже существует |
-m, --mode=ПРАВА |
задать права сразу при создании (вместо umask) |
-v, --verbose |
печатать имя каждого созданного каталога |
rmdir empty # удалить ПУСТОЙ каталог
rmdir -p a/b/c # удалить c, b, a — если каждый становится пустым
rmdir dir 2>/dev/null || rm -r dir # если не пуст — снести рекурсивно
rmdir намеренно удаляет только пустое — это страховка. Для непустого нужен
rm -r (необратимо, проверь путь).
mkdir: cannot create directory 'x': File exists
Каталог уже есть. В скриптах используй mkdir -p — он молча пропустит.
mkdir: cannot create directory 'a/b/c': No such file or directory
Нет промежуточных каталогов (a, a/b). Добавь -p.
Permission denied
Нет прав w+x на родительский каталог. Проверь ls -ld . и права — см. chmod-chown.
Права получились не те, что в -m
-m задаёт права итоговому каталогу напрямую (umask не применяется к нему),
но к промежуточным каталогам из -p применяется обычный umask.
mkdir -p a/b/c # цепочка каталогов
mkdir -p site/{css,js,img} # несколько за раз
mkdir -m 700 ~/.secrets # с правами сразу
rmdir empty # удалить пустой
См. также
- Базовые команды с файлами — Базовые команды
- cd — смена каталога — Базовые команды
- chmod / chown — Пользователи и права