更新日:
【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
コマンドのオプションを利用すれば、親子ディレクトリを同時に作成したり、ディレクトリのファイルモードを指定することができる