Mkdir
mkdir — команда в операционных системах Unix, DOS, DR FlexOS[1], IBM OS/2[2], Microsoft Windows и ReactOS, предназначенная для создания нового каталога. Также доступна в EFI shell[3] и в языке программирования PHP. В DOS, OS/2, Windows и ReactOS обычно используется сокращённая форма md.
Команда аналогична команде create_dir в Stratus OpenVOS[4]. В MetaComCo TRIPOS и AmigaDOS для создания новых каталогов имеется аналогичная команда MakeDir[5].[6] В средах численных расчётов MATLAB и GNU Octave также реализована функция mkdir с похожей функциональностью[7].[8]
Общие сведения
| mkdir | |
|---|---|
| Тип | команда |
| Разработчики | различные разработчики открытого ПО и коммерческого ПО |
| Написана на | Си |
| Операционные системы | Unix, Unix-подобные системы, Plan 9, Inferno, DOS, MSX-DOS, FlexOS, OS/2, Windows, ReactOS, KolibriOS |
| Аппаратная платформа | кроссплатформенное ПО |
| Лицензия |
GNU coreutils: GPLv3+ MS-DOS, Plan 9: MIT FreeDOS: GPLv2+ ReactOS: GPLv2 |
История
В ранних версиях Unix (4.1BSD и ранние версии System V) эта команда должна была запускаться с правами суперпользователя (setuid root), так как в ядре не существовало отдельного системного вызова mkdir. Вместо этого каталог создавался с помощью mknod и вручную добавлялись записи . и ... Команда доступна в MS-DOS, начиная со второй версии[9]. Digital Research DR DOS 6.0[10] и Datalight ROM-DOS[11] также включают реализацию команд md и mkdir.
Версия mkdir, входящая в состав GNU coreutils, написана Дэвидом Маккензи[12].
Команда доступна также во многих эмулируемых и альтернативных системах, таких как открытый MS-DOS-эмулятор DOSBox и KolibriOS[13].
Использование
Обычное использование предельно просто:
mkdir имя_каталога
где имя_каталога — желаемое название создаваемой папки или каталога. При запуске без явного указания полного пути команда создаёт новый каталог в текущей папке. В Unix и Windows (с включёнными расширениями командной строки[14], что является настройкой по умолчанию[15]) можно указать несколько имён, и mkdir попробует создать все перечисленные каталоги.
В Unix-подобных системах команда mkdir поддерживает опции:
-p (--parents): «родители» или «путь» — создаёт все недостающие родительские каталоги на указанном пути. Например,mkdir -p a/bсоздаст каталогa, если он отсутствует, а затем внутри него создастb. Если указанный каталог уже существует, ошибка игнорируется.-m (--mode): «режим» — назначает восьмеричные права доступа для создаваемых папок.
Параметр -p наиболее часто используется при построении сложных деревьев каталогов, если некоторые элементы пути могут отсутствовать или уже существуют. -m часто применяют для создания временных папок с заранее известными правами, например, в shell-скриптах.
Пример работы с параметром -p:
mkdir -p /tmp/a/b/c
Если каталог /tmp/a существует, но /tmp/a/b — нет, команда последовательно создаст недостающие каталоги и итоговый /tmp/a/b/c.
И более расширенный пример (это реализуется расширениями команд shell, а не возможностями самой mkdir):
mkdir -p tmpdir/{trunk/sources/{includes,docs},branches,tags}
Если используются переменные, например в bash-скрипте, то для их раскрытия удобно применять специальную команду shell `eval` по стандарту POSIX:
DOMAIN_NAME=includes,docs
eval "mkdir -p tmpdir/{trunk/sources/{${DOMAIN_NAME}},branches,tags}"
Результат будет следующим:
tmpdir
________|______
| | |
branches tags trunk
|
sources
____|_____
| |
includes docs
Примечания
- ↑ Users guide. bitsavers.org. Дата обращения: 22 октября 2019. Архивировано 25 сентября 2019 года.
- ↑ JaTomes Help - OS/2 Commands. www.jatomes.com. Архивировано 26 октября 2023 года.
- ↑ EFI Shells and Scripting. Intel. Дата обращения: 25 сентября 2013. Архивировано 30 января 2009 года.
- ↑ Reference manual. stratadoc.stratus.com. Дата обращения: 22 октября 2019. Архивировано 9 августа 2018 года.
- ↑ Introduction to Tripos. Дата обращения: 22 октября 2019. Архивировано 12 октября 2025 года.
- ↑ Rügheimer, Hannes. AmigaDOS quick reference / Hannes Rügheimer, Christian Spanik. — Grand Rapids, Mi : Abacus, 1988-10-22. — ISBN 9781557550491.
- ↑ Make new folder - MATLAB mkdir. www.mathworks.com. Архивировано 12 октября 2025 года.
- ↑ Function Reference: mkdir. octave.sourceforge.io. Архивировано 18 августа 2025 года.
- ↑ Running MS-DOS Version 6.22 (20th Anniversary Edition), 6th Revised edition. — Microsoft Press, 2003. — ISBN 0-7356-1812-7.
- ↑ DR DOS 6.0 User Guide Optimisation and Configuration Tips. Дата обращения: 13 августа 2019. Архивировано 30 сентября 2019 года.
- ↑ Datalight ROM-DOS User's Guide. www.datalight.com. Архивировано 16 ноября 2011 года.
- ↑ mkdir(1): make directories - Linux man page. linux.die.net. Архивировано 12 октября 2025 года.
- ↑ Shell - KolibriOS wiki. wiki.kolibrios.org. Архивировано 19 сентября 2014 года.
- ↑ Microsoft Windows XP - Mkdir. Microsoft. Дата обращения: 25 октября 2012. Архивировано 22 июля 2016 года.
- ↑ Microsoft Windows XP - Cmd. Microsoft. Дата обращения: 25 октября 2012. Архивировано 16 сентября 2025 года.
Литература
- Special Edition Using MS-DOS 6.22, Third Edition. — Que Publishing, 2001. — ISBN 978-0789725738.
- Kathy Ivens. OS/2 Inside & Out / Kathy Ivens, Brian Proffit. — Osborne McGraw-Hill, 1993. — ISBN 978-0078818714.
- Frisch, Æleen. Windows 2000 Commands Pocket Reference. — O'Reilly, 2001. — ISBN 978-0-596-00148-3.
- Barrett, Daniel J. Macintosh Terminal Pocket Guide: Take Command of Your Mac. — O'Reilly, 2012. — ISBN 978-1449328986.