如果目录尚不存在,如何递归创建目录?

tar*_*yte 4 shell-script bash-scripting

这似乎是一个通用实用程序,我想知道是否已经存在任何东西。我试图在脚本运行后将带时间戳的日志文件放在目录中,但需要先确保子目录(以及链中的任何目录)存在。

例如,如果完整的相对路径是./2014/Backups/Logfiles,我想检查是否2014不存在,创建它,如果Backups不存在,创建它,如果Logfiles不存在,创建它....

到目前为止,我已经得到了这样的东西(但这只是一步):LOGFILE_DIRECTORY="./2014/Backups/Logfiles"

if [ ! -d "$LOGFILE_DIRECTORY" ]; then
  mkdir "$LOGFILE_DIRECTORY" >> $LOGFILE 2>&1
fi
Run Code Online (Sandbox Code Playgroud)

编辑,添加解决方案

if [ ! -d "$LOGFILE_DIRECTORY" ]; then
  mkdir -p "$LOGFILE_DIRECTORY" >> $LOGFILE 2>&1
fi
Run Code Online (Sandbox Code Playgroud)

Ita*_*tai 12

mkdir -p <path-to-desired-directory>
Run Code Online (Sandbox Code Playgroud)

从手册页:

   -p, --parents
      no error if existing, make parent directories as needed
Run Code Online (Sandbox Code Playgroud)