1. ホーム
  2. バッシュ

[解決済み】Bashを使用して、存在しないサブディレクトリを再帰的に作成するにはどうすればよいですか?

2022-04-09 16:31:42

質問

私はいくつかのデータベースを素敵な/きれいなディレクトリ構造にダンプするクイックバックアップスクリプトを作成しており、それらを作成する前にディレクトリが存在することを確認するためにテストする必要があることに気づきました。私が持っているコードは動作しますが、それを行うためのより良い方法はありますか?

[ -d "$BACKUP_DIR" ] || mkdir "$BACKUP_DIR"
[ -d "$BACKUP_DIR/$client" ] || mkdir "$BACKUP_DIR/$client"
[ -d "$BACKUP_DIR/$client/$year" ] || mkdir "$BACKUP_DIR/$client/$year"
[ -d "$BACKUP_DIR/$client/$year/$month" ] || mkdir "$BACKUP_DIR/$client/$year/$month"
[ -d "$BACKUP_DIR/$client/$year/$month/$day" ] || mkdir "$BACKUP_DIR/$client/$year/$month/$day"

解決方法は?

を使用することができます。 -p というパラメータがあり、これは として文書化されています。 :

-p, --parents

存在する場合はエラーにならず、必要に応じて親ディレクトリを作成します。

だから

mkdir -p "$BACKUP_DIR/$client/$year/$month/$day"