В этой статье мы узнаем о команде mkdir
для Linux, данная команда предназначена для создания каталогов в системе Linux и её дистрибутивах.
Синтаксис mkdir:
mkdir [OPTIONS] ... <DIRECTORY1> <DIRECTORY2> ...
Аргументы:
OPTIONS
- необязательные параметры.
Базовое использование команды mkdir в Linux
Как следует из названия, mkdir
— это сокращение от «создать каталог». Хорошо то, что он создает каталог только в том случае, если сопутствующий каталог или файл не существует по указанному пути. Таким образом, это очень безопасная команда и не наносит никакого вреда системе.
Создание каталога в Linux
Одним из основных применений команды mkdir
является создание именованного каталога по указанному пути. Итак, давайте создадим каталог с именем site в текущем рабочем каталоге:
mkdir site
И для того, чтобы посмотреть, создался ли наш каталог, в консоли наберите команду:
ls
Как видим, все создалось:

В первом примере мы использовали относительный путь с командой mkdir
.
Пример с абсолютными путями:
Примечание: таким образом необязательно делать каталоги.
Давайте теперь создадим каталог используя полный абсолютный путь, с помощью команды pwd
.
Для начала введем команду pwd
, чтобы узнать абсолютный путь до каталога, в котором мы находимся:

Наш абсолютный путь сейчас /home/razilator/, теперь создадим каталог с названием practical-work:
mkdir $PWD/practical-work
И перейдем в него с помощью команды:
cd practical-work
И если мы введем команду pwd
находясь в каталоге practical-work, мы получим абсолютный путь:

Создание нескольких каталогов:
Команда mkdir
принимает несколько путей в качестве аргумента, что позволяет нам создавать несколько каталогов одновременно.
Создадим несколько каталогов внутри одного каталога practical-work:
mkdir practical-work/js practical-work/c++ practical-work/python
А теперь посмотрим содержимое каталога practical-work с помощью команды:
ls -l practical-work
И увидим созданные внутри каталога practical-work папки python, js, c++

Создание каталогов с помощью фигурных скобок:
В предыдущем примере мы увидели, как создать несколько каталогов внутри другого каталога с помощью одной команды. Однако это был не самый эффективный способ, так как мы указывали имя родительского каталога, т.е. practical-work с каждым подкаталогом.
Чтобы обойти это ограничение, мы можем указать имена подкаталогов в раскрытии фигурных скобок, как показано в следующем примере, где мы создаем три подкаталога в каталоге practical-work-second:
mkdir practical-work-second/{html,css,js}
Теперь давайте проверим, что необходимая структура каталогов успешно создана:

Создание вложенной структуры подкаталогов
В предыдущих примерах мы увидели, как создать несколько каталогов. Однако этот подход не работает, если мы хотим создать вложенную структуру папок. В таком случае мы можем использовать параметр команды -p
, который создает родительский каталог, если это необходимо.
Пример создания вложенной структуры подкаталогов:
mkdir -p frimware/miui/12.x/12.2/12.2-2022
Теперь мы проверим содержимое папки miui рекурсивным способом:
ls -1R frimware/miui
Результат:

Команда успешно создала необходимую структуру папок, не сообщая об ошибке несуществующего родительского каталога или других исключений.
Создание каталога с разрешениями
Иногда нам нужно изменить права доступа к каталогу сразу после его создания. В этом случае нам нужно использовать две команды — mkdir
и chmod
. Однако мы можем добиться того же результата с помощью одной команды.
Давайте воспользуемся опцией для установки прав доступа к каталогу при его создании с помощью параметра -m
:
mkdir -m 777 folder-1
В этом примере мы использовали числовой формат для установки прав доступа. Точно так же мы можем использовать текстовый формат.
Эквивалентом примера выше в текстовом формате:
mkdir -m a=rwx folder-2
Воспользуемся командой ls
, чтобы узнать разрешение доступа к каталогам:
ls -ld folder-2 | awk '{print $1}'
Результат:

Вывод информации при создании каталога с помощью mkdir
По умолчанию команда mkdir
ничего не выводит в терминал после создания каталога. Поэтому мы использовали команду ls
, чтобы проверить, был ли создан каталог.
Чтобы преодолеть это ограничение, мы можем использовать подробный командный режим, который печатает сообщение для каждого созданного каталога.
Давайте воспользуемся параметром команды, чтобы включить подробный режим: -v
mkdir -p -v dir-1/dir-2/dir-3/dir-4/dir-5
А теперь посмотрим на результат:

Заключение: в этом руководстве мы рассмотрели основное использование команды mkdir в Linux и его дистрибутивах. Мы узнали, как создавать один и несколько каталогов, а также научились устанавливать права доступа на каталог при его создании.