更新日:
【IT用語】 mkdirとは?GUIよりもすばやいフォルダ作成を習得しよう!
mkdirコマンドはフォルダを作成するためのコマンドです。ターミナルでのフォルダ作成に慣れておくとLinuxサーバーを操作する時にも困りません。
1
$ mkdir フォルダ名
mkdirコマンドは、みなさんがFinderで行っている「新規フォルダ」を作成することをターミナルからも行えるようにしたものです。

ターミナルでフォルダを作成できるようになると、フォルダ作成にかかる時間がFinderと比べて短くなります。また、Linuxサーバーを操作するときにもよく使うコマンドなので、ぜひ一緒に身に着けましょう!
mkdirコマンドとは
mkdirコマンドは新しいディレクトリ (フォルダ) を作成するだけのとてもシンプルなコマンドです。
この記事では、mkdirコマンドの基本的な使い方、注意事項、オプションの順に解説します。
> mkdirコマンドのオプションを先に確認したい方はこちら
mkdirコマンドの基本的な使い方
この章では、mkdirコマンドの基本的な使い方を解説します。
カレントディレクトリ内にディレクトリを作成
カレントディレクトリ直下に新しいディレクトリを作成したい場合は、次のようにmkdirコマンドの後に新しく作成したいディレクトリの名前を指定します。
1
2
3
4
5
6
$ cd ~/Desktop # Desktopへ移動
$ ls # 何も表示されない (ご自身で作成したファイル等は表示されます)
$ mkdir test_dir1 # test_dir1というディレクトリを作成
$ ls # 作成されたか確認
test_dir1
lsコマンドで確認をすると、指定した名前のディレクトリが作成されていますね。
パスを指定してディレクトリを作成
カレントディレクトリに関係なく新しいディレクトリを作成したい場合は、次のように相対パスか絶対パスで新しく作成したいディレクトリの名前を指定します。
1
2
3
4
5
6
7
8
9
10
11
12
$ cd # ホームディレクトリへ移動
$ ls Desktop # Desktopの中身を表示
test_dir1
$ mkdir Desktop/test_dir2 # 相対パスでtest_dir2というディレクトリを作成
$ ls Desktop # 作成されたか確認
test_dir1 test_dir2
$ mkdir /Users/ユーザー名/Desktop/test_dir3 # 絶対パスでtest_dir3というディレクトリを作成
$ cd Desktop # Desktopへ戻る
$ ls # 作成されたか確認
test_dir1 test_dir2 test_dir3
lsコマンドで確認をすると、指定した名前のディレクトリが作成されていますね。
複数のディレクトリを同時に作成
1行で複数のディレクトリを同時に作成したい場合は、次のようにスペース区切りでディレクトリの名前を複数指定します。
1
2
3
$ mkdir test_dir4 test_dir5 # test_dir4とtest_dir5というディレクトリを作成
$ ls # 作成されたか確認
test_dir1 test_dir2 test_dir3 test_dir4 test_dir5
lsコマンドで確認をすると、2つのディレクトリが同時に作成されていますね。
Finderで実行結果を確認
ここまでの説明では、mkdirコマンド実行直後に何も文字が出力されなかったので、不安に感じたかもしれません。mkdirコマンドは指定したディレクトリを正常に作成できた場合は、ターミナルに何も出力しません。つまり、mkdirコマンド実行後に何も出力がなければ、指定したディレクトリは正常に作成されています。
次の動画のように、Finderとターミナルを並べると、mkdirコマンドで作成したディレクトリがFinderにも現れるのが分かります。

最後に、説明用に作成した5つのディレクトリを削除しておきます。入力する文字数を省略するために、任意の1文字を示すワイルドカードである?を使って削除するディレクトリを指定します。
1
2
3
4
5
6
$ ls
test_dir1 test_dir2 test_dir3 test_dir4 test_dir5
$ rmdir test_dir? # test_dirの後に任意の1文字を含むディレクトリをすべて削除
$ ls #削除されたか確認
# 何も表示されない (ご自身で作成したファイル等は表示されます)
mkdirコマンドの注意事項
この章では、mkdirコマンドを使う際に注意しておく必要がある点を解説します。
親ディレクトリが既に存在するか
mkdirコマンドでディレクトリを作成する際には、作成したいディレクトリの親に当たるディレクトリが既に存在していなければいけません。
次のようにFinderのDesktopの中にはparent_dirというディレクトリは存在しませんね。このディレクトリの中に新しくディレクトリを作成した場合はどうなるのか試してみます。

次のコマンドを実行すると、parent_dirとchild_dirを同時に作成されそうですが、lsコマンドを実行しても何も出力されないので、ディレクトリは作成されていません。
1
2
3
4
5
$ mkdir parent_dir/child_dir # まだ存在しないparent_dirの中にchild_dirが作成できるか試す
mkdir: parent_dir: No such file or directory
$ ls # 作成されたか確認
# 何も出力されない
mkdirコマンド実行直後の出力を確認すると、parent_dir: No such file or directory (日本語訳: parent_dirというファイルやディレクトリは存在しません)と記載されていますね。これは、mkdirコマンド実行前にparent_dirという親ディレクトリが既に存在していなければ、child_dirという子ディレクトリは作成できないことを意味しています。
親子ディレクトリを同時に作成するには、後ほど「mkdirコマンドのオプション」で解説する-pオプションを使用する必要があります。
また、オプションを使わない場合は、次のようにmkdirコマンドを2回に分けて実行する必要があります。
1
2
3
4
5
6
7
$ mkdir parent_dir # parent_dirというディレクトリを作成
$ ls # 作成されたか確認
parent_dir
$ mkdir parent_dir/child_dir # parent_dirの中にchild_dirを作成
$ ls parent_dir # parent_dir内の一覧を表示
child_dir
2回に分けてmkdirコマンドを実行すれば、親子関係にある2つのディレクトリを無事に作成することができましたね。
最後に、説明用のディレクトリを削除しておきます。
1
$ rm -r parent_dir # parent_dirを中身ごと削除
親ディレクトリに書き込み権限があるか
mkdirコマンドは、書き込み権限のないディレクトリの中に、新しいディレクトリを作成することができません。
実際に、書き込み権限のないディレクトリを作成して、そのディレクトリの中に新しいディレクトリが作成できるか試してみましょう。
1
2
3
4
5
6
7
8
$ mkdir parent_dir # parent_dirというディレクトリを作成
$ chmod u-w parent_dir # parent_dirから書き込み権限を削除
$ mkdir parent_dir/child_dir # parent_dir内にchild_dirを作成できるか試す
mkdir: parent_dir/child_dir: Permission denied
$ ls parent_dir # parent_dirの中身を表示
# 何も出力されない
lsコマンドで確認しても何も出力されないので、ディレクトリが正常に作成されていませんね。
mkdirコマンド実行直後の出力を確認すると、Permission denied (日本語訳: 権限がありません)と記載されているのが分かります。このように、書き込み権限のないディレクトリ内に新しいディレクトリを作成しようとするとエラーが発生し、ディレクトリの作成に失敗してしまいます。
最後に、説明用のディレクトリを削除しておきます。
1
$ rmdir parent_dir # parent_dirを削除
mkdirコマンドのオプション
この章では、mkdirコマンドのオプションの中から便利なオプションを取り上げて解説します。
| オプション | 説明 |
|---|---|
| mkdir -v | 作成に成功したらメッセージを出力する |
| mkdir -p | 親子ディレクトリを同時に作成する |
| mkdir -m | ファイルモードを指定して作成する |
mkdir -v: 作成に成功したらメッセージを出力
-vオプションの特徴は、ディレクトリの作成に成功したらメッセージが出力されることです。
「mkdirコマンドとは」で説明したように、mkdirコマンドはディレクトリが正常に作成できても、ターミナルにメッセージを出力しません。しかし、-vオプションを使えば、ディレクトリが正常に作成されたことを出力から読み取ることができます。
1
2
3
$ mkdir -v test_dir1 test_dir2
mkdir: created directory 'test_dir1'
mkdir: created directory 'test_dir2'
mkdirコマンド実行後に、created directory (日本語訳: ディレクトリを作成しました)と出力されているので、lsコマンドで確認せずとも2つのディレクトリが作成されたことが分かります。
lsコマンドで確認する手間を省きたい時や、シェルスクリプトでディレクトリが作成されたことを明示したい時に便利です!
最後に、説明用の2つのディレクトリを削除しておきます。
1
$ rmdir test_dir?
mkdir -p: 親子ディレクトリを同時に作成
-pオプションの特徴は、親子ディレクトリを同時に作成できることです。
「親ディレクトリが既に存在するか」で説明したように、オプションなしでmkdirコマンドを使う場合は、作成したいディレクトリの親ディレクトリが既に存在していなければいけませんでした。
しかし、-pオプションを使えば、親ディレクトリと子ディレクトリを同時に作成することができます。
次のようにFinderのDesktopの中にはparent_dirというディレクトリは存在しませんね。

それでは、実際に-pオプションを使って親ディレクトリと子ディレクトリを同時に作成してみましょう。
1
2
3
4
5
6
$ mkdir -p parent_dir/child_dir # parent_dirとchild_dirという親子ディレクトリを同時作成
$ ls # parent_dirが作成されたか確認
parent_dir
$ ls parent_dir # parent_dirの中身を表示
child_dir
lsコマンドで確認すると、親子関係にある2つのディレクトリが同時に作成されていますね。
次のようにFinderで確認をしても、parent_dirとchild_dirが親子として同時に作成されたことがわかります。

mkdirコマンドを実行する回数を減らしたいときに便利です!
最後に、説明用のディレクトリを削除しておきます。
1
$ rm -r parent_dir # parent_dirを中身ごと削除
mkdir -m: ファイルモードを指定して作成
-mオプションの特徴は、作成するディレクトリのファイルモードを指定できることです。
ファイルモードの指定方法はchmodコマンドと同じで、a=rwxやu=rwx,go=などのシンボルや、777や700などの オクタル (8進数) などが使用できます。
例えば、-mオプションに700というオクタル値を指定すれば、ユーザーにのみ「読み」「書き」「実行」 を許可するディレクトリが作成されます。
実際に-mオプションに700を指定して、ユーザーにのみ「読み」「書き」「実行」を許可するディレクトリが作成されるか見てみましょう。
1
2
3
4
$ mkdir -m 700 test_dir # ユーザーにのみ読み・書き・実行を許可するディレクトリを作成
$ ls -l | grep test_dir # test_dirの詳細情報を表示
drwx------ 2 pikawaka staff 64 5 6 16:08 test_dir
lsコマンドでtest_dirの詳細情報を確認すると、ユーザーにのみ「読み」「書き」「実行」が許可されたディレクトリであることを示すdrwx------と出力されていることが確認できます。
mkdirコマンド実行時に、指定したいファイルモードが決まっている場合は、後からchmodコマンドを実行する手間が省けて便利です!
最後に、説明用のディレクトリを削除しておきます。
1
$ rmdir test_dir
コマンドについて学ぶには
「mkdir以外のコマンドについても、一通り知っておきたい!」という方には、価格も安く内容も簡潔な、以下の書籍がおすすめです。
macOSのコマンドラインの「超入門」が学べる本です。
この記事のまとめ
mkdirコマンドはディレクトリを作成するためのコマンドmkdirコマンドは書き込み権限のないディレクトリの中には新しいディレクトリを作成できないmkdirコマンドのオプションを利用すれば、親子ディレクトリを同時に作成したり、ディレクトリのファイルモードを指定することができる