경로에 디렉터리가 있는지 재귀적으로 확인

경로에 디렉터리가 있는지 재귀적으로 확인

주어진 경로에 디렉터리가 존재하는지 재귀적으로 확인하고 싶습니다. 존재하지 않으면 디렉터리를 만들고 싶습니다. 따라서 경로가 있는 경우 /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

이를 수행하는 더 간단한 방법이 있습니까?

관련 정보