脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

mkdirで存在しない途中のディレクトリも一緒に作成する方法

普通に深い階層のディレクトリを作ろうとすると、途中のディレクトリがないといって怒られます。

$ mkdir 1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir
# => mkdir: cannot create directory `1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir': No such file or directory

しかし、-pオプションをつけると途中のディレクトリがない場合はそれも含めて一括でディレクトリを作成してくれます。

$ mkdir -p 1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir

$ ls -lR 1st_dir
1st_dir:
total 4
drwxrwxr-x 3 roma roma 4096 Jul 24 09:23 2nd_dir

1st_dir/2nd_dir:
total 4
drwxrwxr-x 3 roma roma 4096 Jul 24 09:23 3rd_dir

1st_dir/2nd_dir/3rd_dir:
total 4
drwxrwxr-x 3 roma roma 4096 Jul 24 09:23 4th_dir

1st_dir/2nd_dir/3rd_dir/4th_dir:
total 4
drwxrwxr-x 2 roma roma 4096 Jul 24 09:23 5th_dir

1st_dir/2nd_dir/3rd_dir/4th_dir/5th_dir:
total 0