Linux,mkdirで複数階層のディレクトリを一括で作成する

スポンサーリンク

鍛錬 897

Linux,mkdirで複数階層のディレクトリを一括で作成する

複数階層(多階層)のディレクトリを一括で(一気に)作成するには、mkdir にオプションを付加して使用します。
 
使用方法は、以下に示す通りです。

mkdir -p ディレクトリ1/ディレクトリ2/ディレクトリ3 ・・・
  • 親ディレクトリが存在しない場合は、新たに作成されます。
  • 指定したディレクトリが既に存在する場合は、新たに作成されません。
  • 指定したディレクトリが既に存在する場合でも、エラーメッセージを出力しません。

オプション

以下は、上記のオプションについてです。

オプション 機能
-p 指定したディレクトリが既に存在してもエラーを出力しない。
親ディレクトリが存在しない場合は、親ディレクトリを含めて
新たに作成される。
スポンサーリンク

実行結果

以下は、複数階層のディレクトリを一括で作成しています。

存在する親ディレクトリ以降に作成

以下は、存在する親ディレクトリ「AAA」以降に、複数階層のディレクトリ「AAA/BBB/CCC/DDD/EEE」を一括で作成しています。

john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ tree
.

0 directories, 0 files
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ mkdir AAA
john@ubuntu:/var/tmp/test$ echo -n > ./AAA/sample.txt
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ tree
.
└── AAA
    └── sample.txt

1 directory, 1 file
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ mkdir -p ./AAA/BBB/CCC/DDD/EEE
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ tree
.
└── AAA
    ├── BBB
    │   └── CCC
    │       └── DDD
    │           └── EEE
    └── sample.txt

5 directories, 1 file

 
上記に示した通り、存在する親ディレクトリ以降に、複数階層のディレクトリを一括で作成することができました。

親ディレクトリも含めて作成

以下は、存在しない親ディレクトリ「AAA」も含めて、複数階層のディレクトリ「AAA/BBB」を一括で作成しています。

john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ tree
.

0 directories, 0 files
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ mkdir ./AAA/BBB
mkdir: ディレクトリ `./AAA/BBB' を作成できません: そのようなファイルやディレクトリはありません
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ mkdir -p ./AAA/BBB
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ 
john@ubuntu:/var/tmp/test$ tree
.
└── AAA
    └── BBB

2 directories, 0 files

 
上記に示した通り、存在しない親ディレクトリ「AAA」も含めて、複数階層のディレクトリを一括で作成することができました。

タイトルとURLをコピーしました