mkdir
mkdirは、UnixやMS-DOS(互換OSや、OS/2・Microsoft Windows等を含む)でディレクトリを作成するコマンドである。"make directory" の略。MS-DOS系では md という略称がエイリアスとなっているため、短いそちらが使われることが多い。
使用法
通常の使用法は単に次のように新ディレクトリ名を指定する。
mkdir name_of_directory
ここで name_of_directory は作成したいディレクトリの名前である。このように入力すると、新ディレクトリがカレントディレクトリの下に作成される。UNIXでは複数のディレクトリ名を指定でき、その場合 mkdir コマンドが指定された全てのディレクトリを作成しようとする。
オプション
Unix系OSでは、mkdir にオプションを指定できる。最も一般的なオプションは次の3つである。
-p: パス名形式でディレクトリ名を指定し、パス名の途中のディレクトリが存在しない場合はそれらも新規作成する。パス名に既存のディレクトリが含まれていてもエラーにはならない。-v: 実際に作成したディレクトリ名を表示する。-pと共に使うことが多い。-m: 作成するディレクトリのファイルパーミッションを八進表記で指定する。
-pはmkdirを使って複雑なディレクトリ階層を構成する際によく使われ、必要なディレクトリがあるかないかを気にしなくてもよいため便利である。-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.1BSDや System V の初期のバージョン)ではカーネルに mkdir システムコールがなかったため、rootのsetuid属性がこのコマンドに付与されていた。代わりにmknodシステムコールでディレクトリを生成し、コマンド内で . や .. といったディレクトリと一つ一つリンクしていた。
外部リンク
- Microsoft TechNet Mkdir article
mkdir(1)– JM Project Linux User Commands マニュアルmkdir(1)– FreeBSD General Commands Manual Pages (en)