こんにちは!草もちです🌵
読書の秋…ということで、最近、本を読み始めました!
なんだかそれだけで賢くなった気がする!👓
さて、今回はmkdirコマンドについて説明していきたいと思います。
mkdirコマンドの概要
mkdirコマンドとは??
mkdirコマンドはディレクトリを作成するためのコマンドです。
mkdirとは、”make directory”の略と言われています。
基本的な使い方
$ mkdir ディレクトリ名
mkdirの後に作成したいディレクトリ名を指定して、実行します。
実際にやってみましょう。
今回はホームディレクトリに”directory_3”を作っていきたいと思います。
cdコマンドでホームディレクトリに移動して
$ cd
※cdコマンドの使い方はこちら↓↓↓
”directory_3”を作成します。
$ mkdir directory_3
ちゃんと作成できたか確認するため、カレントディレクトリのディレクトリやファイル情報を表示するlsコマンドを実行しましょう。
$ ls
すると、
directory_1 directory_2 directory_3
と表示されました。
無事、directory_3が作成できているようですね。

lsコマンドは後日説明します!
mkdirコマンドのオプション
-mオプション

パ…パーミッション?!
パーミッションって何??
パーミッションとは”アクセス権”のことを言います。
アクセス権には3つの種類があります。
権限の種類 | 内容 |
---|---|
読み取り権限 | ディレクトリやファイルの中身を見ることができる |
書き込み権限 | ディレクトリやファイルの中身を編集することができる |
実行権限 | ファイルを実行することができる |
また、このアクセス権を付与する対象も3種類あります。
- 所有者
- 所有グループのユーザー
- その他のユーザー
パーミッションの確認方法
特定のディレクトリやファイルのパーミッションを確認するには、以下のコマンドを実行します。
$ ls -l
ホームディレクトリで実行すると(ホームディレクトリに移動するコマンドは以下省略)、
drwxrwxr-x. 3 kusamochi kusamochi 10 9月 1 12:59 directory_1 drwxrwxr-x. 4 kusamochi kusamochi 25 9月 1 16:23 directory_2 drwxrwxr-x. 2 kusamochi kusamochi 6 9月 8 16:23 directory_3
といった情報が表示されます。
先頭の”drwxrwxr-x”といった10文字の文字列がまさにパーミッションについての情報を表しています。
まず、先頭の1文字目は、ファイル種別を示しています。
文字 | ファイル種別 |
---|---|
– | ファイル |
d | ディレクトリ |
l | シンボリックリンク |
※シンボリックリンクについてはこちらを参照してください↓↓↓
残りの9文字は3文字ずつ区切りで意味をなしていて、それぞれ、
文字列 | 内容 |
---|---|
2~4文字目 | 所有者の権限 |
5~7文字目 | 所有グループのユーザーの権限 |
8~10文字目 | その他のユーザーの権限 |
といった内容を示しています。
さらに各3文字は”rwx”の順に表示され、それぞれ、
文字 | 意味 |
---|---|
r | 読み込み権限 |
w | 書き込み権限 |
x | 実行権限 |
といった意味をなしています。
”-(ハイフン)”の箇所はその権限がないことを表します。
つまり、”drwxrwxr-x”部分を翻訳すると、
ファイル種別:ディレクトリ
所有者の権限:読み取り、書き込み、実行権限すべてあり
所有グループのユーザー:読み取り、書き込み、実行権限すべてあり
その他のユーザー:読み取り、実行権限はあるが、書き込み権限は無い
ということになります。
パーミッションの指定(数値で指定)
読み取り・書き込み・実行権限を表す3文字には、権限ありを1、なしを0で表現した2進数表記を8進数に置き換えた数字が割り当てられており、
文字 | 数字 |
---|---|
r(読み取り権限) | 4 |
w(書き込み権限) | 2 |
x(実行権限) | 1 |
mkdirコマンドでパーミッションを指定するときは、この数値の合計値を使用します。
例えば、
読み取り権限だけ与えたいときは…4+0+0=4。
読み取り権限と書き込み権限を与えたいときは…4+2+0=6
読み取り、書き込み、実行権限全ての権限を与えたいときは…4+2+1=7
といった感じです。
上記を、所有者、所有グループのユーザー、その他のユーザーの順に3つ数値を指定します。
今回は
所有者:読み取り、書き込み、実行権限すべてあり
所有グループのユーザー:読み取り、書き込み、実行権限すべてあり
その他のユーザー:読み取り権限のみあり
といった条件のディレクトリ”directory_4”をホームディレクトリに作ります。
ホームディレクトリに移動し、以下を実行。
$ mkdir -m 774 directory_4
カレントディレクトリのディレクトリやファイルのパーミッション情報を確認してみましょう。
先ほど同様、”-l”オプション付きのlsコマンドを実行します。
$ ls -l
すると、
drwxrwxr-x. 3 kusamochi kusamochi 10 9月 1 12:59 directory_1 drwxrwxr-x. 4 kusamochi kusamochi 25 9月 1 16:23 directory_2 drwxrwxr-x. 2 kusamochi kusamochi 6 9月 8 16:30 directory_3 drwxrwxr--. 2 kusamochi kusamochi 6 9月 9 19:20 directory_4
期待していたdirectory_4の情報が追加されていることがわかりますね!
パーミッションの指定(アルファベットで指定)
数値ではなく、アルファベットで指定する方法もあります。
アクセス権を付与する対象にはアルファベットが割り振られています。
対象 | アルファベット |
---|---|
所有者 | u |
所有グループのユーザー | g |
その他のユーザー | o |
すべてのユーザー | a |
例えば、
その他のユーザーは読み取り権限のみの”directory_5”を作りたい場合は、
その他のユーザーのアルファベット”o”と、
指定した権限を付与するという意味の”=(イコール)”と、
読み取り権限の”r”を使用して、
$ mkdir -m o=r directory_5
と、実行しましょう。
ちゃんと作れたか確認のために
$ ls -l
と実行すると、
drwxrwxr-x. 3 kusamochi kusamochi 10 9月 1 12:59 directory_1 drwxrwxr-x. 4 kusamochi kusamochi 25 9月 1 16:23 directory_2 drwxrwxr-x. 2 kusamochi kusamochi 6 9月 8 16:30 directory_3 drwxrwxr--. 2 kusamochi kusamochi 6 9月 9 19:20 directory_4 drwxrwxr--. 2 kusamochi kusamochi 6 9月 10 22:15 directory_5
無事、その他のユーザーは読み取り権限のみの”directory_5”ができました!

表示内容の詳細は
lsコマンドの時に説明します!
-vオプション
$ mkdir -v directory_5
と実行すると、
mkdir: ディレクトリ `directory_5' を作成しました
上記のように、作成したディレクトリ名と共にメッセージが表示されます。
-pオプション
試しに、オプションなしで、カレントディレクトリに存在しないdirectory_oya配下にdirectory_koを作ろうと、以下のコマンドを実行してみます。
$ mkdir directory_oya/directory_ko
すると、
mkdir: ディレクトリ `directory_oya/directory_ko' を作成できません: そのようなファイルやディレクトリはありません
上記のようなエラーが表示されます。
”directory_oya”が存在しないため、”directory_ko”は作れませんよ!と言われてしまいました。
今度は
$ mkdir -p -v directory_oya/directory_ko
-pオプションと-vオプション付きで実行してみると…
mkdir: ディレクトリ `directory_oya' を作成しました mkdir: ディレクトリ `directory_oya/directory_ko' を作成しました
上記のようなメッセージが表示されました!
directory_koを作ると同時に、存在していなかった親ディレクトリdirectory_oyaも一緒につくってくれたことが分かります!
長くなってしまいました💦
最後まで読んで頂きありがとうございます🐣✨
以上、mkdirコマンドについてでした👋