はじめに
シェルスクリプトでディレクトリを作成し、 cd コマンドで移動します、というようなロジックを書くことがあります。
mkdir コマンドを単純に実行してしまうと、すでにディレクトリが存在しているときにエラーを吐いてしまうため、ディレクトリ存在チェックを行う必要がありますが面倒です。
これは簡単に解決できます。
検証環境
| |
ディレクトリの存在チェックロジックを実装する方法
よく記述していたのは次のようなコードでした。 事前にディレクトリの存在チェックを行い、見つからなかった場合のみディレクトリを作成します。
| |
mkdir -p コマンドを使ってディレクトリを作成する場合は存在チェックは不要
実はディレクトリの存在チェックを行わなくても先のスクリプトは問題なく動作します。
mkdir -p コマンドは次のような挙動をします。
- 作成対象ディレクトリの親ディレクトリが存在しない場合 はすべての親ディレクトリを作成する
- 作成対象ディレクトリがすでに存在している場合 は何も行わず、エラーもはかない
試してみます。
| |
したがって、先のスクリプトは次のようにかけます。
| |
ひとこと
mkdir はよく使うコマンドですので、便利な使い方を把握しておくと長い目で見たときに開発が効率化されるはずです。