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


답변:


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.