パスにディレクトリがあるかどうかを再帰的に確認する

パスにディレクトリがあるかどうかを再帰的に確認する

与えられたパスにディレクトリが存在するかどうかを再帰的に確認したいと思います。存在しない場合は、ディレクトリを作成したいと思います。したがって、ルートがある場合は/dir1/dir2/dir3/dir4最初にルートがあることを確認しdir1/、それ以外の場合はルートを作成してからdir2/ピアに対して同じことを行います。

答え1

mkdirスイッチを使用して作成するパスを指定します-p

$ mkdir -p /dir1/dir2/dir3/dir4

mkdirマニュアルページから抜粋

   -p, --parents
          no error if existing, make parent directories as needed

引用する

答え2

解決策が見つかりました。cut-loopを使用してください。while

#!/bin/bash

RUNDIR=$1

n=2
TMPDIR=
while [ $(echo $RUNDIR | cut -d '/' -f$(printf $n)) ]; do
      TMPDIR=$TMPDIR'/'$(echo $RUNDIR | cut -d '/' -f$(printf $n))
      if [ -a $TMPDIR ]; then
         echo $TMPDIR' exists'
      else
         echo $TMPDIR' does not exist; creating directory...'
         mkdir $TMPDIR
      fi
      n=$(printf $(($n + 1)))
done

これを行うより簡単な方法はありますか?

関連情報