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]

История

В ранних версиях 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].

Использование

undefined

Обычное использование предельно просто:

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

Примечания

  1. Users guide. bitsavers.org. Дата обращения: 22 октября 2019. Архивировано 25 сентября 2019 года.
  2. JaTomes Help - OS/2 Commands. www.jatomes.com. Архивировано 26 октября 2023 года.
  3. EFI Shells and Scripting. Intel. Дата обращения: 25 сентября 2013. Архивировано 30 января 2009 года.
  4. Reference manual. stratadoc.stratus.com. Дата обращения: 22 октября 2019. Архивировано 9 августа 2018 года.
  5. Introduction to Tripos. Дата обращения: 22 октября 2019. Архивировано 12 октября 2025 года.
  6. Rügheimer, Hannes. AmigaDOS quick reference / Hannes Rügheimer, Christian Spanik. — Grand Rapids, Mi : Abacus, 1988-10-22. — ISBN 9781557550491.
  7. Make new folder - MATLAB mkdir. www.mathworks.com. Архивировано 12 октября 2025 года.
  8. Function Reference: mkdir. octave.sourceforge.io. Архивировано 18 августа 2025 года.
  9. Running MS-DOS Version 6.22 (20th Anniversary Edition), 6th Revised edition. — Microsoft Press, 2003. — ISBN 0-7356-1812-7.
  10. DR DOS 6.0 User Guide Optimisation and Configuration Tips. Дата обращения: 13 августа 2019. Архивировано 30 сентября 2019 года.
  11. Datalight ROM-DOS User's Guide. www.datalight.com. Архивировано 16 ноября 2011 года.
  12. mkdir(1): make directories - Linux man page. linux.die.net. Архивировано 12 октября 2025 года.
  13. Shell - KolibriOS wiki. wiki.kolibrios.org. Архивировано 19 сентября 2014 года.
  14. Microsoft Windows XP - Mkdir. Microsoft. Дата обращения: 25 октября 2012. Архивировано 22 июля 2016 года.
  15. 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.

Ссылки