mkdir

出典: フリー百科事典『ウィキペディア(Wikipedia)』

mkdirは、UnixMS-DOS(互換OSや、OS/2Microsoft Windows等を含む)でディレクトリを作成するコマンドである。"make directory" の略。MS-DOS系では md という略称がエイリアスとなっているため、短いそちらが使われることが多い。

使用法[編集]

通常の使用法は単に次のように新ディレクトリ名を指定する。

mkdir name_of_directory

ここで name_of_directory は作成したいディレクトリの名前である。このように入力すると、新ディレクトリがカレントディレクトリの下に作成される。UNIXでは複数のディレクトリ名を指定でき、その場合 mkdir コマンドが指定された全てのディレクトリを作成しようとする。

オプション[編集]

Unix系OSでは、mkdir にオプションを指定できる。最も一般的なオプションは次の3つである。

  • -p: パス名形式でディレクトリ名を指定し、パス名の途中のディレクトリが存在しない場合はそれらも新規作成する。パス名に既存のディレクトリが含まれていてもエラーにはならない。
  • -v: 実際に作成したディレクトリ名を表示する。-pと共に使うことが多い。
  • -m: 作成するディレクトリのファイルパーミッションを八進表記で指定する。

-pmkdirを使って複雑なディレクトリ階層を構成する際によく使われ、必要なディレクトリがあるかないかを気にしなくてもよいため便利である。-mシェルスクリプト内で使う一時的なディレクトリを他からいじられないようにするときなどによく使う。

[編集]

-p を使った例を示す。

mkdir -p /tmp/a/b/c

/tmp/a が既存のディレクトリで /tmp/a/b が存在しない場合、mkdir はまず /tmp/a/b を作成してから /tmp/a/b/c を作成する。

シェルの機能を使うと、コマンド1つでさらに複雑なディレクトリ階層を作成できる。

mkdir -p tmpdir/{trunk/syntaxhighlights/{includes,docs},branches,tags}

このコマンド行で次のようなディレクトリ階層ができる。

          tmpdir
    ________|______
   |        |      |
branches   tags  trunk
                   |
                 syntaxhighlights
               ____|_____
              |          |
          includes     docs

歴史[編集]

初期のUNIX(4.1BSDSystem V の初期のバージョン)ではカーネルmkdir システムコールがなかったため、rootsetuid属性がこのコマンドに付与されていた。代わりにmknodシステムコールでディレクトリを生成し、コマンド内で ... といったディレクトリと一つ一つリンクしていた。

外部リンク[編集]