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