답변:
시도 mkdir -p
:
mkdir -p foo
존재하지 않는 중간 디렉토리도 생성됩니다. 예를 들어
mkdir -p foo/bar/baz
디렉토리를 만들 것입니다 foo
, foo/bar
그리고 foo/bar/baz
그들은 존재하지 않는 경우.
GNU와 같은 일부 구현 mkdir
에는 mkdir --parents
더 읽기 쉬운 별칭이 포함되지만 POSIX / Single Unix Specification에는 지정되어 있지 않으며 macOS, 다양한 BSD 및 다양한 상용 Unix와 같은 많은 공통 플랫폼에서는 사용할 수 없으므로 피해야합니다.
상위 디렉토리가 존재하지 않을 때 오류가 발생하고 존재하지 않는 경우 디렉토리를 작성하려는 경우 먼저 디렉토리가 존재할 수 있습니다 test
.
[ -d foo ] || mkdir foo
mkdir
Windows가 아닌 Unix 계열 시스템에 관한 것입니다. -p
POSIX / Single Unix 사양 준수에 필요하므로 해당 사양을 준수하려는 모든 것이 지원 -p
됩니다. Cygwin 또는 MSYS와 같은 POSIX 에뮬레이션 계층을 사용하지 않으면 Windows는 완전히 다릅니다.
mkdir -p
. 대괄호를 사용할 수 있습니다! {}
명령에서 "복잡한"디렉토리 트리를 작성합니다. 여기를 참조하십시오 : technosophos.com/2010/04/15/...
||
대신 &&
전체 줄에 올바른 종료 상태가 있기 때문에 대신 선호 합니다. 쉘이 실행 errexit
중이거나 그 라인이 함수, 스위치 케이스 등의 마지막 라인 인 경우 중요합니다 .
mkdir
; 쉘은 이러한 표현식을 전달 된 개별 인수 목록으로 확장합니다 mkdir
.
이것은 작동해야합니다 :
$ mkdir -p dir
또는:
if [[ ! -e $dir ]]; then
mkdir $dir
elif [[ ! -d $dir ]]; then
echo "$dir already exists but is not a directory" 1>&2
fi
디렉토리가 존재하지 않는 경우 디렉토리를 작성하지만 작성하려는 디렉토리 이름이 디렉토리 이외의 다른 디렉토리에서 이미 사용중인 경우 경고합니다.
하나의 명령으로 복잡한 디렉토리 트리 정의
mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
mkdir
그 자체 의 기능이 아니라 명령을 실행하는 쉘입니다. 이를 괄호 확장이라고합니다. AFAIK, Bash, ksh, zsh 및 C 쉘만 지원합니다.
folder name
를 사용해야합니다 folder\ name
)
mkdir foo
디렉토리가 존재하더라도 작동합니다. "foo"라는 디렉토리가없는 경우에만 작동하게하려면 -p
플래그를 사용해보십시오 .
예 :-
mkdir -p foo
"foo"라는 디렉토리가없는 경우에만 디렉토리가 작성됩니다. :)
directory_name = "foo"
if [ -d $directory_name ]
then
echo "Directory already exists"
else
mkdir $directory_name
fi
man mkdir
옵션에 대한 매뉴얼 페이지 참조 -p
-p, --parents
no error if existing, make parent directories as needed
주어진 경로에 모든 디렉토리를 생성합니다. 존재하는 경우 오류가 발생하지 않으면 주어진 경로에서 왼쪽에서 오른쪽으로 모든 디렉토리를 생성합니다. 아래 명령을 시도하십시오. 디렉토리 newdir
및 anotherdir
이 명령을 실행하기 전에 존재하지 않습니다
올바른 사용법
mkdir -p /tmp/newdir/anotherdir
명령을 실행 한 후에는 볼 수 newdir
와 anotherdir
/ tmp를 아래에 작성. 이 명령은 원하는 횟수만큼 실행할 수 있으며 명령에는 항상 있습니다 exit(0)
. 이러한 이유로 인해 대부분의 사람들은 실제 경로를 사용하기 전에 쉘 스크립트에서이 명령을 사용합니다.
디렉토리를 작성하는 것보다 디렉토리가 존재하는지 여부를 확인하기 위해 if 루프를 사용할 수 있습니다.
1) dir = / home / dir_name
if [ ! -d $dir ]
then
mkdir $dir
else
echo "Directory exists"
fi
2) mkdir을 -p 옵션과 함께 사용하여 디렉토리를 만들 수 있습니다. 디렉토리를 사용할 수 없는지 확인합니다.
mkdir -p $dir
mkdir -p는 디렉토리의 트리 구조를 만들 수도 있습니다. 동일한 명령을 사용하여 상위 및 하위 디렉토리를 작성하려는 경우 mkdir -p를 선택할 수 있습니다.
mkdir -p /home/parent_dir /home/parent_dir/child1 /home/parent_dir/child2
디렉토리가 존재하지 않는 경우 디렉토리를 만들 수있는 간단한 함수 (bash 쉘)입니다.
#----------------------------------
# Create a directory if it doesn't exist
#------------------------------------
createDirectory() {
if [ ! -d $1 ]
then
mkdir -p $1
fi
}
위 함수를 다음과 같이 호출 할 수 있습니다.
createDirectory / tmp / fooDir / BarDir
위의 fooDir 및 BarDir이 없으면 만듭니다. 디렉토리를 재귀 적으로 작성하는 mkdir 명령의 "-p"옵션에 유의하십시오. 도움이 되었기를 바랍니다.
mkdir -p sam