Главная
» LINUX
»
Как использовать Bash для создания каталогов в Linux с помощью команды mkdir
Как использовать Bash для создания каталогов в Linux с помощью команды mkdir
Для создания каталога из Bash в Linux используйте mkdirкоманду, за которой следует имя каталога. Например, mkdir projectsкоманда создаст папку с именем projectsвнутри вашего текущего рабочего каталога. Для обычного создания каталогов вам не потребуется отдельный файловый менеджер или дополнительный пакет.
Строго говоря, mkdirэто не встроенная функция Bash. Bash запускает утилиту создания каталогов, установленную в системе; в типичных дистрибутивах GNU/Linux эта утилита входит в состав GNU Coreutils. Текущая документация GNU Coreutils по функции mkdir описывает стандартный синтаксис и полезные параметры, такие как -p, -m, и -v.
Создайте директорию с помощью команды `mkdir`.
Откройте терминал и, при необходимости, pwdпроверьте свое текущее местоположение. Затем выполните команду:
mkdir projects
Если команда выполнена успешно, обычно ничего не выводится. Подтвердите новый каталог с помощью:
ls
Создание одной директории в текущем местоположении с помощью mkdir.
Вы также можете указать mkdirпуть. В Bash символ без кавычек ~разворачивается в вашу домашнюю директорию, поэтому это создаст archivesпапку внутри вашей домашней директории:
mkdir ~/archives
В руководстве Bash по расширению тильды объясняется, как именно ~происходит расширение. Если родительский каталог не существует, обычный путь mkdirне сработает; используйте -pдля вложенных путей.
Создавайте вложенные каталоги с помощью команды `mkdir -p`.
Параметр -p`or` --parentsсоздает отсутствующие родительские каталоги по мере необходимости. Это наиболее удобный вариант при построении более глубокой структуры каталогов:
mkdir -p ~/work/client/site/assets
Если переменная work`<path>` client, `<path>` или `<path> ` siteещё не существует, mkdir -pона создаётся. При этом ошибка не выдаётся только потому, что существующий компонент пути уже является каталогом.
mkdir -pСоздает отсутствующие родительские каталоги одной командой.
Для скриптов можно добавить опцию, -vуказывающую на необходимость визуального подтверждения созданного контента:
mkdir -pv ~/work/client/site/assets
Создайте несколько каталогов одновременно.
mkdirПринимает несколько имен каталогов, поэтому вы можете создать несколько папок одной командой:
mkdir docs images backups
Поскольку в этом руководстве используется Bash, вы также можете использовать расширение фигурных скобок, если несколько имен каталогов имеют один и тот же путь:
mkdir -p project/{src,tests,docs}
Bash разворачивает это выражение перед выполнением mkdir, создавая project/src, project/tests, и project/docs. GNU Bash описывает это поведение в своем справочнике по разворачиванию фигурных скобок . Разворачивание фигурных скобок — это особенность Bash, поэтому не следует предполагать, что скрипт, выполняемый строго POSIX-совместимым программистом, shбудет интерпретировать его таким же образом.
Расширение фигурных скобок в Bash — это компактный способ создания нескольких связанных каталогов.
Имена каталогов с пробелами и пользовательскими правами доступа.
Если имя каталога содержит пробелы, заключите его целиком в кавычки, если оно относительно текущего каталога:
mkdir "Project Files"
Для указания пути к вашей домашней директории $HOMEбезопаснее использовать двойные кавычки, чем заключать в кавычки буквальную тильду:
mkdir "$HOME/Project Files"
Не следует писать mkdir "~/Project Files"и ожидать ~, что тильда раскроется; заключение тильды в кавычки предотвращает её обычное раскрытие.
GNU mkdirтакже поддерживает -mустановку режима прав доступа для нового каталога. Например:
mkdir -m 750 private
Запрашиваются права на чтение, запись и выполнение для владельца, права на чтение и выполнение для группы, и никаких прав для остальных. Проверьте результат с помощью:
ls -ld private
Кавычки защищают имена, содержащие пробелы, а -mустанавливает запрошенный режим прав доступа к каталогу.
Распространенные ошибки создания каталогов (mkdir).
Файл существует: целевое имя уже существует. Если это существующий каталог во вложенном пути, mkdir -pможет быть уместно.
Файл или каталог не найден: отсутствует путь к родительскому каталогу. Используйте эту опцию, mkdir -p path/to/new/folderесли хотите, чтобы отсутствующие родительские каталоги создавались автоматически.
Отказано в доступе: ваша учетная запись не может записывать данные в указанное местоположение. Создайте каталог в принадлежащем вам месте или используйте права администратора только в том случае, если это действительно необходимо для корректной работы системы.
Пробелы разделяют имя: путь, например, заключен в кавычки mkdir "$HOME/My Projects".
Удалите созданную вами директорию.
Для создания пустой директории используйте rmdir:
rmdir projects
В документации GNU Coreutils по команде rmdir подтверждается, что rmdirона удаляет пустые каталоги. Если каталог содержит файлы, rmdirкоманда не удаляет его. Рекурсивное удаление с помощью rm -rдоступно для непустых каталогов, но сначала внимательно проверьте путь, поскольку это удалит каталог и его содержимое.
Краткий справочник команд
mkdir name— создать одну директорию в текущем местоположении.
mkdir ~/name— Создайте одну директорию в своей домашней директории.
mkdir -p a/b/c— создать вложенное дерево каталогов и отсутствующих родительских каталогов.
mkdir one two three— создавать несколько каталогов одновременно.
mkdir -p project/{src,tests,docs}— Используйте расширение фигурных скобок Bash для обозначения связанных папок.
mkdir "$HOME/Project Files"— безопасно создать путь к домашнему каталогу, содержащий пробелы.
mkdir -m 750 private— создать каталог с указанным режимом прав доступа.
mkdir --helpили man mkdir— просмотреть справку по локальной команде.