Поиск по сайту:

Как создавать каталоги в Linux с помощью команды mkdir


Кратко. В этом руководстве мы рассмотрим команду mkdir, которая используется для создания каталога. Мы также обсудим некоторые практические примеры, которые помогут новичкам уверенно работать с системой Linux.

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

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

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

Как и другие команды Linux, синтаксис команды mkdir в основном разделен на две группы – параметры и аргументы:

mkdir [OPTIONS] ... <DIRECTORY1> <DIRECTORY2> ...

В приведенном выше синтаксисе квадратные скобки ([]) представляют необязательные аргументы, тогда как угловые скобки (<>) представляют обязательные аргументы.

Базовое использование команды mkdir в Linux

Как следует из названия, mkdir — это короткая форма «makedirectory». Хорошо то, что он создает каталог только в том случае, если каталог или файл с ним не существует по данному пути. Таким образом, это очень безопасная команда, не причиняющая никакого вреда системе.

В этом разделе мы увидим базовое использование команды mkdir с примерами.

1. Создайте каталог в Linux.

Одним из основных применений команды mkdir является создание именованного каталога по заданному пути. Итак, давайте создадим каталог с именем rpm-distros в текущем рабочем каталоге:

mkdir rpm-distros

Теперь используйте команду ls, чтобы убедиться, что каталог создан:

ls -l

В первом примере мы использовали относительный путь с командой mkdir. Однако эта команда также поддерживает абсолютный путь.

Мы можем использовать команду pwd или переменную среды pwd, чтобы найти абсолютный путь к текущему рабочему каталогу.

Итак, давайте создадим именованный каталог — deb-distros в текущем рабочем каталоге, используя абсолютный путь:

mkdir $PWD/deb-distros

Теперь убедитесь, что новый каталог создан в текущем рабочем каталоге:

ls -l

2. Создайте несколько каталогов в Linux

Команда mkdir принимает в качестве аргумента несколько путей, что позволяет нам создавать несколько каталогов за один раз.

Давайте создадим три каталога внутри каталога deb-distros с помощью одной команды:

mkdir deb-distros/kali deb-distros/mint deb-distros/ubuntu

Теперь давайте перечислим содержимое каталога deb-distros:

ls -l deb-distros

Как мы видим, команда mkdir успешно создала несколько каталогов.

3. Создайте несколько каталогов, используя расширение скобок.

В предыдущем примере мы увидели, как создать несколько каталогов внутри другого каталога с помощью одной команды. Однако это был не самый эффективный способ, поскольку мы указывали имя родительского каталога, то есть deb-distros, для каждого подкаталога.

Чтобы преодолеть это ограничение, мы можем указать имена подкаталогов в фигурных скобках, как показано в следующем примере, где мы создаем три подкаталога внутри каталога rpm-distros:

mkdir rpm-distros/{alma,centos,fedora}

Здесь следует отметить следующие два важных момента:

  • По обе стороны от запятой нет пробелов (,).
  • Функция расширения фигурных скобок доступна только в оболочке Bash, поэтому этот подход менее переносим.

Теперь проверим, что необходимая структура каталогов успешно создана:

ls -l rpm-distros

4. Создайте вложенную структуру подкаталогов.

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

Давайте создадим вложенную структуру подкаталогов:

mkdir -p rpm-distros/centos/8.x/8.1/8.1-1911

Теперь проверьте содержимое каталога rpm-distros/centos рекурсивным способом:

ls -1R rpm-distros/centos

Как мы видим, команда создала необходимую структуру каталогов, не сообщая об ошибке для существующих родительских каталогов. Эта опция очень удобна при написании сценариев оболочки. Мы можем использовать его для подавления ошибки создания каталога, которая может возникнуть из-за существующего каталога.

5. Создайте каталог с разрешениями.

Иногда нам необходимо изменить права доступа к каталогу сразу после его создания. В этом случае нам придется использовать две команды — mkdir и chmod. Однако мы можем добиться того же результата, используя одну команду.

Давайте воспользуемся опцией -m, чтобы установить права доступа к каталогу при его создании:

mkdir -m 777 dir-1

В этом примере мы использовали числовой формат для установки разрешения доступа. Аналогичным образом мы можем использовать текстовый формат.

Например, мы можем добиться того же результата, используя следующую команду:

mkdir -m a=rwx dir-2

Теперь используйте команду ls, чтобы узнать права доступа к каталогам:

ls -ld dir-2 | awk '{print $1}'

6. Включите Verbose с помощью команды mkdir.

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

Чтобы преодолеть это ограничение, мы можем использовать подробный режим команды, которая печатает сообщение для каждого созданного каталога. Эта опция дает значимую информацию, когда мы объединяем ее с опцией –p:

Давайте воспользуемся опцией -v с командой, чтобы включить подробный режим:

mkdir -p -v dir-1/dir-2/dir-3/dir-4/dir-5

Теперь давайте посмотрим на вывод команды:

В этой статье мы увидели базовое использование команды mkdir. Сначала мы увидели, как создать один каталог, а также несколько каталогов. Далее мы увидели, как установить разрешения для каталога при его создании. Наконец, мы увидели, как проверить создание каталога в подробном режиме.

Знаете ли вы какой-нибудь другой лучший пример команды mkdir в Linux? Поделитесь с нами своим мнением в комментариях ниже.