すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

IT用語

【IT用語】 mkdirとは?GUIよりもすばやいフォルダ作成を習得しよう!

ぴっかちゃん
ぴっかちゃん

mkdirコマンドはフォルダを作成するためのコマンドです。ターミナルでのフォルダ作成に慣れておくとLinuxサーバーを操作する時にも困りません。

ターミナル | フォルダを作成
1
$ mkdir フォルダ名

mkdirコマンドは、みなさんがFinderで行っている「新規フォルダ」を作成することをターミナルからも行えるようにしたものです。

Finderで新規フォルダを作成

ターミナルでフォルダを作成できるようになると、フォルダ作成にかかる時間がFinderと比べて短くなります。また、Linuxサーバーを操作するときにもよく使うコマンドなので、ぜひ一緒に身に着けましょう!

mkdirコマンドとは

mkdirコマンドは新しいディレクトリ (フォルダ) を作成するだけのとてもシンプルなコマンドです。

この記事では、mkdirコマンドの基本的な使い方、注意事項、オプションの順に解説します。

> mkdirコマンドのオプションを先に確認したい方はこちら

mkdirコマンドの基本的な使い方

この章では、mkdirコマンドの基本的な使い方を解説します。

カレントディレクトリ内にディレクトリを作成

カレントディレクトリ直下に新しいディレクトリを作成したい場合は、次のようにmkdirコマンドの後に新しく作成したいディレクトリの名前を指定します。

/Users/ユーザー名/Desktop | カレントディレクトリ直下にディレクトリを作成
1
2
3
4
5
6
$ cd ~/Desktop # Desktopへ移動
$ ls # 何も表示されない (ご自身で作成したファイル等は表示されます)

$ mkdir test_dir1 # test_dir1というディレクトリを作成
$ ls # 作成されたか確認
test_dir1 

lsコマンドで確認をすると、指定した名前のディレクトリが作成されていますね。

パスを指定してディレクトリを作成

カレントディレクトリに関係なく新しいディレクトリを作成したい場合は、次のように相対パス絶対パスで新しく作成したいディレクトリの名前を指定します。

/Users/ユーザー名/Desktop | パスを指定してディレクトリを作成
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行で複数のディレクトリを同時に作成したい場合は、次のようにスペース区切りでディレクトリの名前を複数指定します。

/Users/ユーザー名/Desktop | 複数のディレクトリを同時に作成
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にも現れるのが分かります。

mkdirコマンドの実行結果をFinderで確認する

最後に、説明用に作成した5つのディレクトリを削除しておきます。入力する文字数を省略するために、任意の1文字を示すワイルドカードである?を使って削除するディレクトリを指定します。

/Users/ユーザー名/Desktop | 説明用のディレクトリを削除
1
2
3
4
5
6
$ ls
test_dir1  test_dir2  test_dir3  test_dir4  test_dir5

$ rmdir test_dir? # test_dirの後に任意の1文字を含むディレクトリをすべて削除
$ ls  #削除されたか確認
# 何も表示されない (ご自身で作成したファイル等は表示されます)
ポイント
  1. mkdirコマンドはディレクトリを作成するためのコマンドです。
  2. mkdirコマンドはディレクトリが正常に作成できた場合はターミナルに何も出力しません。

mkdirコマンドの注意事項

この章では、mkdirコマンドを使う際に注意しておく必要がある点を解説します。

  1. 親ディレクトリが既に存在するか
  2. 親ディレクトリに書き込み権限があるか

親ディレクトリが既に存在するか

mkdirコマンドでディレクトリを作成する際には、作成したいディレクトリの親に当たるディレクトリが既に存在していなければいけません。

次のようにFinderのDesktopの中にはparent_dirというディレクトリは存在しませんね。このディレクトリの中に新しくディレクトリを作成した場合はどうなるのか試してみます。

Finderでデスクトップが空であることを確認する

次のコマンドを実行すると、parent_dirchild_dirを同時に作成されそうですが、lsコマンドを実行しても何も出力されないので、ディレクトリは作成されていません。

/Users/ユーザー名/Desktop | 親子ディレクトリが同時作成できるか試す
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回に分けて実行する必要があります。

/Users/ユーザー名/Desktop | 親ディレクトリと子ディレクトリを順番に作成
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つのディレクトリを無事に作成することができましたね。

最後に、説明用のディレクトリを削除しておきます。

/Users/ユーザー名/Desktop | 説明用のディレクトリを削除する
1
$ rm -r parent_dir # parent_dirを中身ごと削除

親ディレクトリに書き込み権限があるか

mkdirコマンドは、書き込み権限のないディレクトリの中に、新しいディレクトリを作成することができません。

実際に、書き込み権限のないディレクトリを作成して、そのディレクトリの中に新しいディレクトリが作成できるか試してみましょう。

/Users/ユーザー名/Desktop | 書き込み権限のないディレクトリ内にディレクトリを作成できるか試す
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 (日本語訳: 権限がありません)と記載されているのが分かります。このように、書き込み権限のないディレクトリ内に新しいディレクトリを作成しようとするとエラーが発生し、ディレクトリの作成に失敗してしまいます。

最後に、説明用のディレクトリを削除しておきます。

/Users/ユーザー名/Desktop | 説明用のディレクトリを削除する
1
$ rmdir parent_dir # parent_dirを削除
ポイント
  1. mkdirコマンドはオプションなしでは親子ディレクトリを同時に作成できません。
  2. mkdirコマンドは書き込み権限のないディレクトリの中に新しいディレクトリを作成できません。

mkdirコマンドのオプション

この章では、mkdirコマンドのオプションの中から便利なオプションを取り上げて解説します。

オプション 説明
mkdir -v 作成に成功したらメッセージを出力する
mkdir -p 親子ディレクトリを同時に作成する
mkdir -m ファイルモードを指定して作成する

mkdir -v: 作成に成功したらメッセージを出力

-vオプションの特徴は、ディレクトリの作成に成功したらメッセージが出力されることです。

mkdirコマンドとは」で説明したように、mkdirコマンドはディレクトリが正常に作成できても、ターミナルにメッセージを出力しません。しかし、-vオプションを使えば、ディレクトリが正常に作成されたことを出力から読み取ることができます。

/Users/ユーザー名/Desktop | -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つのディレクトリを削除しておきます。

/Users/ユーザー名/Desktop | 説明用ディレクトリの削除
1
$ rmdir test_dir?

mkdir -p: 親子ディレクトリを同時に作成

-pオプションの特徴は、親子ディレクトリを同時に作成できることです。

親ディレクトリが既に存在するか」で説明したように、オプションなしでmkdirコマンドを使う場合は、作成したいディレクトリの親ディレクトリが既に存在していなければいけませんでした。

しかし、-pオプションを使えば、親ディレクトリと子ディレクトリを同時に作成することができます。

次のようにFinderのDesktopの中にはparent_dirというディレクトリは存在しませんね。

Finderでデスクトップが空であることを確認する

それでは、実際に-pオプションを使って親ディレクトリと子ディレクトリを同時に作成してみましょう。

/Users/ユーザー名/Desktop | -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_dirchild_dirが親子として同時に作成されたことがわかります。

-pオプションの実行結果をFinderで確認する

mkdirコマンドを実行する回数を減らしたいときに便利です!

最後に、説明用のディレクトリを削除しておきます。

/Users/ユーザー名/Desktop | 説明用ディレクトリの削除
1
$ rm -r parent_dir # parent_dirを中身ごと削除

mkdir -m: ファイルモードを指定して作成

-mオプションの特徴は、作成するディレクトリのファイルモードを指定できることです。

ファイルモードの指定方法はchmodコマンドと同じで、a=rwxu=rwx,go=などのシンボルや、777700などの オクタル (8進数) などが使用できます。

例えば、-mオプションに700というオクタル値を指定すれば、ユーザーにのみ「読み」「書き」「実行」 を許可するディレクトリが作成されます。

実際に-mオプションに700を指定して、ユーザーにのみ「読み」「書き」「実行」を許可するディレクトリが作成されるか見てみましょう。

/Users/ユーザー名/Desktop | -mオプションの使い方
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コマンドを実行する手間が省けて便利です!

最後に、説明用のディレクトリを削除しておきます。

/Users/ユーザー名/Desktop | 説明用ディレクトリの削除
1
$ rmdir test_dir

コマンドについて学ぶには

「mkdir以外のコマンドについても、一通り知っておきたい!」という方には、価格も安く内容も簡潔な、以下の書籍がおすすめです。

macOSのコマンドラインがよくわからない人のための「超」入門書
macOSのコマンドラインがよくわからない人のための「超」入門書

macOSのコマンドラインの「超入門」が学べる本です。

この記事のまとめ

  • mkdirコマンドはディレクトリを作成するためのコマンド
  • mkdirコマンドは書き込み権限のないディレクトリの中には新しいディレクトリを作成できない
  • mkdirコマンドのオプションを利用すれば、親子ディレクトリを同時に作成したり、ディレクトリのファイルモードを指定することができる