반응형
폴더가없는 경우 Bash를 사용하여 폴더를 만드는 방법은 무엇입니까?
#!/bin/bash
if [!-d /home/mlzboy/b2c2/shared/db]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
작동하지 않는 것 같습니다. 누구든지 도울 수 있습니까?
bash에서 "["는 마지막 인수로 문자열 "]"을 예상하는 명령 일 뿐이므로 닫는 대괄호 앞의 공백 ( "!"과 "-d"사이에 두 개의 별도 인수가 필요함) 역시) 중요하다 :
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi
둘째, -p switch to를 사용 mkdir
하고 있기 때문에,이 검사는 처음에는 수행하기 때문에 쓸모가 없습니다. 그냥 써:
mkdir -p /home/mlzboy/b2c2/shared/db;
그리고 그게 다야.
실제로 존재하는지 여부를 확인할 필요가 없습니다. 존재하는 경우 이미 작성하려고하므로 mkdir 만 수행합니다.
mkdir -p /home/mlzboy/b2c2/shared/db
간단히 :
mkdir /path/to/your/potentially/existing/folder
폴더가 이미 존재하면 mkdir에서 오류가 발생합니다. 오류를 무시하려면 다음을 작성하십시오.
mkdir -p /path/to/your/potentially/existing/folder
점검이나 그와 같은 것을 할 필요가 없습니다.
참고로 :
-p, --parents no error if existing, make parent directories as needed
http://man7.org/linux/man-pages/man1/mkdir.1.html
[
및 ]
괄호 안에 공백이 필요합니다 .
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]
then
mkdir -p /home/mlzboy/b2c2/shared/db
fi
보다 깔끔한 방법으로 쉘 논리 연산자의 바로 가기 평가를 활용하십시오. 왼쪽이 참인 경우에만 연산자의 오른쪽이 실행됩니다.
[ ! -d /home/mlzboy/b2c2/shared/db ] && mkdir -p /home/mlzboy/b2c2/shared/db
코드를 약간 다시 포맷해야한다고 생각합니다.
#!/bin/bash
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then
mkdir -p /home/mlzboy/b2c2/shared/db;
fi;
반응형
'Programing' 카테고리의 다른 글
JAXB를 사용하여 XML 문자열에서 오브젝트 작성 (0) | 2020.05.30 |
---|---|
.NET HttpClient. (0) | 2020.05.30 |
입력 텍스트 내에서 명확한 아이콘 (0) | 2020.05.30 |
지원 라이브러리를 사용하여 리플 애니메이션을 얻는 방법은 무엇입니까? (0) | 2020.05.30 |
가장 좋아하는 (G) Vim 플러그인 / 스크립트? (0) | 2020.05.30 |