在 bash 中创建一个目录嵌套

eek*_*nky 0 bash directory-structure

我想要一种更简洁的方式来嵌套这个命令;

if [ ! -d $BACKUPDIR ]; then
  mkdir -p $BACKUPDIR
  mkdir -p $BACKUPDIR/directories
  mkdir -p $BACKUPDIR/databases
  mkdir -p $BACKUPDIR/logs
else
  :
fi
Run Code Online (Sandbox Code Playgroud)

ilk*_*chu 5

通过大括号扩展,您可以只做

mkdir -p "$BACKUPDIR"/{directories,databases,logs}
Run Code Online (Sandbox Code Playgroud)

如果你想确保子目录也存在,你可以在mkdir没有测试的情况下运行。有了-p它不应该抱怨现有目录,而不会有主目录下的机会$BACKUPDIR存在,但缺少的子目录。

(当然,如果BACKUPDIR为空,这将(尝试)在文件系统根目录中创建子目录。但我假设您已经BACKUPDIR在脚本的前面设置了某个值。)