리눅스 커맨드 라인에 디렉토리가 있는지 확인하는 방법?


답변:


40
$ if test -d /the/dir; then echo "exist"; fi 

스크립트가 아닌 명령 줄에 필요합니다.

5
이것이 명령 줄입니다. 직접 떠들썩한 파티에 그것을 입력 할 수 있습니다, 또는 당신은 그것을 다시 시작할 수 있습니다 test -d /the/dir: test -d /the/dir && echo "exist" || echo "does not exist"하지만 그들은 정말 동일합니다.
— David Rodríguez-dribeas

모두의 껍질이 아닙니다 bash!
— reinierpost

@reinierpost 다음 행운을 빕니다 ...
— 스테파노 보리 니

@ 스테파노 보리 니 : tcsh난 너무 다시 쓰기 때문에 게으 르기 때문에 여전히 사용 .tcshrc합니다. 그러나 더 중요한 것은 OP의 문제를 설명했을 수 있습니다.
— reinierpost

11

쉘이 BASH라고 가정하면 :

if [ -d /the/dir ]; then echo 'Exists'; else echo 'Not found'; fi

예기치 않은 토큰`then '근처의 구문 오류

그런 다음 쉘이 무엇인지 파악하십시오. 아마도 csh또는 tcsh?
— reinierpost 10

8
[ -d /home/bla/ ] && echo "exits"

디렉토리가 존재하지 않더라도 텍스트를 표시하기 위해 ELSE와 같은 것을 사용할 수 있습니까?

해결 방법 :[ -d /home/bla/ ] && echo "exist" ; [ ! -d /home/bla/ ] && echo "doesnt exist"
— learningloop

7

정식 방법은 test (1) 유틸리티를 사용하는 것입니다.

test -d path

여기서 "path"는 해당 디렉토리의 경로 이름입니다.


이 명령은 자체적으로 수행되는 것으로 보이지 않지만 echo "Directory Exists".
— Ejaz

2

[ -d "YOUR_DIR" ] && echo "is a dir"

예 :

[ -d / ] && echo "root dir"

출력합니다 : root dir.


[-d : 명령을 찾지 못했습니다.

"["와 "-"사이에는 공백이 있어야합니다. Bourne 및 Bash 셸에서 작동합니다.

0

쉘 스크립트에 디렉토리가 있는지 확인하려면 다음을 사용할 수 있습니다.

dir=$1

if [ -d "$dir" ]; then

 #means that $dir exists.

fi

반대를 확인하려면 !앞에 추가 하십시오-d ->[ ! -d ....]


슈퍼 유저에 오신 것을 환영합니다! 이것은 다른 답변을 복제하고 새로운 내용을 추가하지 않습니다. 실제로 새로운 내용이 없다면 답변을 올리지 마십시오.
— DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.