mkdirでディレクトリが存在しない時だけディレクトリを作成する。

ディレクトリを作成するコマンドは、mkdirです。

$ mkdir some_directory

これでsome_directoryディレクトリができます。

既にディレクトリが存在するとエラー

しかし、既にディレクトリが存在するとエラーになります。

$ mkdir some_directory
mkdir: some_directory: File exists

エラーが出てほしくないので、存在しない時だけ作成したいです。

if文を使って書く

単純に先に存在を確認してからmkdirすれば良いです。

if [ ! -e some_directory ]; then mkdir some_directory ; fi

でも面倒くさいし、汚いです。

ぐぐってみました。

ぐぐったらすぐに出ました。

スクリーンショット 2014-03-11 19.16.26

How to mkdir only if a dir does not already exist?

-pオプションでいけるらしい。

なんと単純に-pオプションでいけるらしいです。

$ mkdir -p some_directory

-pオプションといえば、階層のあるディレクトリを一気に作れるもの。

$ mkdir -p dir/dir_in_dir/dir_in_dir_in_dir
$ ls -l dir/dir_in_dir/
total 0
drwxr-xr-x  2 kataoka  staff  68  3 11 19:19 dir_in_dir_in_dir

・・・と思っていましたが、こんな使い方もあるのですね。

終わりです。

About katty0324

Comments are closed.

Scroll To Top