Команда Linux mkdir: Создание директорий

LinuxBeginner
Практиковаться сейчас

Введение

В рамках этой практической работы мы изучим команду mkdir в Linux — фундаментальный инструмент для создания и организации директорий. Мы смоделируем процесс настройки «цифрового сада» (персональной системы управления знаниями), чтобы научиться эффективно использовать mkdir в различных сценариях. Этот практический опыт поможет вам понять принципы создания папок, построения вложенных структур и настройки прав доступа в Linux, даже если вы совсем новичок в работе с командной строкой.

Создание корня вашего цифрового сада

Начнем с создания корневой директории для вашего цифрового сада.

Сначала откройте терминал. Вы увидите приглашение ко вводу, которое выглядит примерно так:

labex:project/$

Это означает, что вы находитесь в директории /home/labex/project, которая идеально подходит для нашей работы.

Теперь создадим директорию с именем digital_garden:

mkdir digital_garden

Здесь mkdir расшифровывается как «make directory» (создать директорию). Эта команда создает новую папку с именем digital_garden в вашем текущем местоположении.

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

ls

В выводе вы должны увидеть digital_garden. Если вы её не видите, не волнуйтесь! Просто попробуйте выполнить команду mkdir еще раз.

Добавление основных разделов

В цифровом саду удобно распределять мысли по основным категориям. Давайте создадим папки для разных типов контента.

Мы создадим три директории внутри digital_garden: «notes» (заметки), «projects» (проекты) и «resources» (ресурсы). Это можно сделать тремя отдельными командами:

mkdir ~/project/digital_garden/notes
mkdir ~/project/digital_garden/projects
mkdir ~/project/digital_garden/resources

Здесь ~/project/digital_garden/ — это полный путь к нашему цифровому саду. Символ ~ является сокращением для домашней директории пользователя.

Чтобы увидеть новую структуру, используйте команду ls с указанием пути к вашему цифровому саду:

ls ~/project/digital_garden

Вы должны увидеть список из трех новых папок: notes, projects и resources.

Если вам интересно, для чего могут понадобиться эти папки:

  • notes может хранить быстрые мысли или ежедневные размышления.
  • projects может содержать долгосрочные рабочие задачи или учебные материалы.
  • resources пригодится для хранения справочных материалов.

Создание вложенных директорий

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

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

mkdir -p ~/project/digital_garden/projects/web_app/src/components

Эта команда делает сразу несколько вещей:

  • Создает папку web_app внутри projects.
  • Внутри web_app создает папку src.
  • И, наконец, внутри src создает папку components.

Опция -p (сокращение от «parents» — родители) указывает mkdir создавать любые недостающие промежуточные папки в указанном пути. Без -p вы бы получили ошибку, если бы какая-то часть пути еще не существовала.

Чтобы просмотреть эту структуру, используйте команду ls с опцией -R, которая показывает содержимое рекурсивно:

ls -R ~/project/digital_garden/projects/web_app

Вы увидите отображение всей иерархии вложенных папок.

Настройка прав доступа к директории

При создании директорий вы можете сразу задать определенные права доступа. Это полезно для контроля того, кто может просматривать, изменять или запускать файлы внутри папки.

Давайте создадим директорию с именем «private» с ограниченным доступом:

mkdir -m 700 ~/project/digital_garden/private

Вот что делает эта команда:

  • mkdir создает директорию.
  • -m 700 устанавливает права доступа (mode).
    • 7: Чтение, запись и выполнение для владельца.
    • 0: Нет прав для группы.
    • 0: Нет прав для всех остальных.

Другими словами, только вы (владелец) сможете получить доступ к этой папке.

Чтобы проверить права доступа, используйте:

ls -ld ~/project/digital_garden/private

Вывод должен выглядеть примерно так:

drwx------ 2 labex labex 6 Aug  7 18:40 /home/labex/project/digital_garden/private

Здесь drwx------ означает:

  • d: Это директория (directory).
  • rwx: У вас (владельца) есть права на чтение (read), запись (write) и выполнение (execute).
  • ------: Ни у вашей группы, ни у других пользователей прав нет.

Использование подробного режима

Подробный режим (verbose mode) полезен при создании нескольких директорий, так как он выводит отчет о каждом выполненном действии. Это особенно удобно, когда вы создаете много папок разом и хотите убедиться, что все они созданы корректно.

Создадим несколько директорий в подробном режиме:

mkdir -v ~/project/digital_garden/resources/books ~/project/digital_garden/resources/articles ~/project/digital_garden/resources/videos

Опция -v означает «verbose». Она заставляет mkdir выводить сообщение для каждой созданной папки.

Вы должны увидеть вывод, похожий на этот:

mkdir: created directory '/home/labex/project/digital_garden/resources/books'
mkdir: created directory '/home/labex/project/digital_garden/resources/articles'
mkdir: created directory '/home/labex/project/digital_garden/resources/videos'

Такая обратная связь очень помогает в сложных скриптах или при поиске ошибок.

Комбинирование опций

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

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

mkdir -pvm 750 ~/project/digital_garden/projects/research_paper/drafts ~/project/digital_garden/projects/research_paper/references

Разберем команду по частям:

  • -p: Создать родительские директории при необходимости.
  • -v: Подробный режим, вывод сообщения о каждой созданной папке.
  • -m 750: Установка прав доступа (владелец: полный доступ, группа: чтение и выполнение, остальные: доступа нет).

Эта команда создает две папки (drafts и references) внутри research_paper, которая сама будет создана внутри projects, если её еще нет.

Чтобы проверить структуру и права:

ls -lR ~/project/digital_garden/projects/research_paper

Вы увидите вложенные директории с указанными правами доступа (drwxr-x---).

Визуализация цифрового сада с помощью команды tree

Теперь, когда мы создали структуру нашего цифрового сада, воспользуемся командой tree для её визуализации. Команда tree отображает структуру директорий в виде дерева, что наглядно и информативно.

Запустим tree, чтобы посмотреть на наш результат:

tree ~/project/digital_garden

Вы должны увидеть нечто подобное:

/home/labex/project/digital_garden
|-- notes
|-- private
|-- projects
|   |-- research_paper
|   |   |-- drafts
|   |   `-- references
|   `-- web_app
|       `-- src
|           `-- components
`-- resources
    |-- articles
    |-- books
    `-- videos

13 directories, 0 files

Эта древовидная структура дает четкое представление о нашем цифровом саде. Мы видим все созданные папки, включая вложенные.

Если вы хотите увидеть больше деталей, включая настроенные нами права доступа, можно добавить опцию -p к команде tree:

tree -p ~/project/digital_garden

Это покажет права доступа для каждой папки:

[drwxrwxr-x]  /home/labex/project/digital_garden
|-- [drwxrwxr-x]  notes
|-- [drwx------]  private
|-- [drwxrwxr-x]  projects
|   |-- [drwxrwxr-x]  research_paper
|   |   |-- [drwxr-x---]  drafts
|   |   `-- [drwxr-x---]  references
|   `-- [drwxrwxr-x]  web_app
|       `-- [drwxrwxr-x]  src
|           `-- [drwxrwxr-x]  components
`-- [drwxrwxr-x]  resources
    |-- [drwxrwxr-x]  articles
    |-- [drwxrwxr-x]  books
    `-- [drwxrwxr-x]  videos

13 directories, 0 files

Такое визуальное представление — отличный способ убедиться, что мы создали всё именно так, как планировали, с правильной иерархией и доступом.

Этот шаг подводит итог нашей работе, позволяя увидеть всю выстроенную систему целиком. Команда tree полезна не только для этого упражнения, но и является ценным инструментом для навигации и понимания структур папок в вашей дальнейшей работе с Linux.

Резюме

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

  1. Создавать одиночные директории.
  2. Создавать несколько директорий одной командой.
  3. Строить вложенные структуры папок с помощью опции -p.
  4. Устанавливать специфические права доступа при создании папок с помощью опции -m.
  5. Использовать подробный режим -v для получения отчетов о действиях.

Мы также увидели, как эти опции можно комбинировать для выполнения сложных задач.

Хотя мы не рассматривали это в упражнениях, у mkdir есть еще несколько параметров, которые могут пригодиться в специфических ситуациях:

  • -Z: Установить контекст безопасности SELinux для каждой создаваемой директории по умолчанию.
  • --context[=CTX]: Аналогично -Z, но позволяет вручную указать контекст безопасности SELinux или SMACK.
  • --help: Показать справку и выйти.
  • --version: Вывести информацию о версии и выйти.

Эти навыки являются базовыми для эффективной организации файловой системы в среде Linux. Помните, что хотя мы тренировались на примере «цифрового сада», эти методы применимы в любой ситуации, когда вам нужно создавать и управлять структурами папок. По мере освоения Linux вы обнаружите, что mkdir — незаменимый инструмент для организации ваших файлов и проектов.

Ресурсы