カテゴリ: Linuxコマンド集 更新日: 2025/12/05

Linuxのmkdir -pオプションを完全解説!初心者でもわかる親ディレクトリまとめ作成の基本

mkdir -pオプション|親ディレクトリもまとめて作成する方法
mkdir -pオプション|親ディレクトリもまとめて作成する方法

先生と生徒の会話形式で理解しよう

生徒

「Linuxでフォルダを作るときに、途中の親フォルダがないとエラーになってしまいました。どうすればいいですか?」

先生

「それはmkdirコマンドの-pオプションを使うと解決できますよ。親ディレクトリをまとめて作成できるんです。」

生徒

「普通のmkdirとの違いは何ですか?」

先生

「普通のmkdirは、親フォルダが存在しないとエラーになりますが、-pを付けると途中の親フォルダも自動で作成してくれます。」

生徒

「なるほど!それなら複雑な階層を一気に作れるんですね。」

先生

「そうです。では、具体的な使い方を一緒に見ていきましょう。」

1. mkdir -pオプションとは?

1. mkdir -pオプションとは?
1. mkdir -pオプションとは?

mkdir -pは、Linuxで親ディレクトリを含めてまとめて作成するためのオプションです。「make directory」の略であるmkdirに「-p(parentsの略)」を付けることで、存在しない親ディレクトリを自動的に作ってくれます。

例えば「projects/java/spring」という階層を一気に作りたいとき、普通のmkdirでは「projects」や「java」が存在しないとエラーになりますが、-pを付ければすべてまとめて作成できます。

2. 普通のmkdirでエラーになる例

2. 普通のmkdirでエラーになる例
2. 普通のmkdirでエラーになる例

まずは通常のmkdirコマンドで親ディレクトリがない場合を確認してみましょう。


mkdir projects/java/spring
mkdir: ディレクトリ `projects/java/spring' を作成できません: そのようなファイルやディレクトリはありません

このように、途中の「projects」や「java」が存在しないとエラーになってしまいます。これは初心者が最初に戸惑いやすいポイントです。

3. mkdir -pを使った正しい使い方

3. mkdir -pを使った正しい使い方
3. mkdir -pを使った正しい使い方

そこで活躍するのが-pオプションです。次のように入力すれば、階層ごとまとめて作成してくれます。


mkdir -p projects/java/spring

作成できたか確認するには、ls -Rで階層を表示すると分かりやすいです。


ls -R projects
projects:
java

projects/java:
spring

projects/java/spring:

このように、「projects」「java」「spring」が一気に作成されました。

4. 既に存在するディレクトリでもエラーにならない

4. 既に存在するディレクトリでもエラーにならない
4. 既に存在するディレクトリでもエラーにならない

-pオプションを使うと、もし親ディレクトリが既に存在していてもエラーになりません。例えば「projects」というフォルダがある状態で再度同じコマンドを実行しても問題なくスルーしてくれます。


mkdir -p projects/java/spring

この挙動は「冪等性(べきとうせい)」と呼ばれ、同じ操作を繰り返しても結果が変わらない性質を意味します。初心者でも安心して使える理由の一つです。

5. mkdir -pで複数階層を同時に作成する例

5. mkdir -pで複数階層を同時に作成する例
5. mkdir -pで複数階層を同時に作成する例

一度に複数の階層を作ることも可能です。例えば次のように入力すると、「python」「golang」という別の階層も同時に作成できます。


mkdir -p projects/python projects/golang

確認すると、それぞれの階層が作成されているのが分かります。


ls projects
golang  java  python

6. 実務や学習での活用例

6. 実務や学習での活用例
6. 実務や学習での活用例

プログラミングの学習や開発現場では、言語やフレームワークごとにディレクトリを分けることがよくあります。例えば「projects/java/spring」「projects/python/django」といった形で階層を整理すると、後から探しやすくなります。

また、ログファイルやバックアップデータを日付ごとに整理する場合にも便利です。


mkdir -p backup/2025/09/16

このようにすれば、「2025年9月16日」という日付階層が一気に作られ、ファイル管理がスムーズになります。

7. 注意点と補足

7. 注意点と補足
7. 注意点と補足

便利な-pですが、無意識に深い階層を作りすぎると逆に管理が難しくなることがあります。階層はできるだけシンプルにしておくのがおすすめです。

また、システムの大事な場所(例えば/etc/var)に不用意にmkdirを実行すると、システムが正しく動作しなくなる恐れがあるため、初心者はホームディレクトリ内(/home/ユーザー名)で練習するのが安全です。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Linuxでmkdir -pオプションとは何ですか?

Linuxのmkdir -pオプションは、親ディレクトリを含めてまとめて作成するためのオプションです。存在しない親ディレクトリがあっても自動的に作ってくれる便利な機能です。
関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
find -mindepthオプションの使い方を完全ガイド!検索の最小深さを指定して効率よくファイル検索
New2
ファイル・ディレクトリ操作
Linuxのlsコマンド-iオプション完全ガイド!初心者でもわかるi-node番号の表示方法
New3
ファイル・ディレクトリ操作
stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう
New4
ファイル・ディレクトリ操作
cp --parentsオプションの使い方|ディレクトリ構造を保持してコピーする方法を完全解説!
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本