Bashでディレクトリのネストを作成する

Bashでディレクトリのネストを作成する

私はこのコマンドを入れ子にするよりきれいな方法が欲しいです。

if [ ! -d $BACKUPDIR ]; then
  mkdir -p $BACKUPDIR
  mkdir -p $BACKUPDIR/directories
  mkdir -p $BACKUPDIR/databases
  mkdir -p $BACKUPDIR/logs
else
  :
fi

ベストアンサー1

中かっこ拡張を使用すると、次のことができます。

mkdir -p "$BACKUPDIR"/{directories,databases,logs}

サブディレクトリも存在することを確認するには、mkdirテストせずに実行します。これにより、-p既存のディレクトリに不満があってはなりません。デフォルトのディレクトリは$BACKUPDIR存在しますが、サブディレクトリが欠落している状況は発生しません。

(もちろん空の場合は、ファイルシステムのルートにサブディレクトリを作成しようとしますが、スクリプトで以前にいくつかの値を設定したとします。BACKUPDIRBACKUPDIR

おすすめ記事