2010-05-30 6 views
5

디렉토리를 존재하는지 여부를 탐지하는 스크립트를 작성하려고 시도하고 있으며 그렇지 않은 경우이를 작성하려고합니다.디렉토리가 존재하는지 테스트하기위한 쉘 스크립트?

어떻게하면됩니까?

내가 뒷조사를했고, 단서 발견

test -d directory 

... true 또는 false이 디렉토리가 존재하는지 여부에 따라 반환됩니다.

그러나 어떻게 이것을 mkdir과 연결합니까?

+0

왜 테스트가 필요합니까? 그냥 "mkdir foo 2>/dev/null"을 수행하십시오. 디렉토리가 존재하면 mkdir은 실패하고 아무런 해를 끼치 지 않습니다. –

답변

9

mkdir -p $directory은 원하는대로해야합니다. -p 옵션을 사용하면 필요한 상위 디렉토리가 만들어집니다. $directory이 이미 디렉토리로 존재하면 명령은 아무 작업도 수행하지 않고 성공합니다. $directory이 일반 파일이면 그대로 유지되며 해당 오류 메시지와 함께 명령이 실패합니다. $directory가 존재하지 않는 경로를 '/', 어떤 구성 요소가 포함되어있는 경우 mkdir-p 옵션을 사용하지 않으면

test ... || mkdir ... 전략은 실패 할 수 있습니다. mkdir이 동일한 테스트를 내부적으로 수행하기 때문에 test은 불필요합니다.

3
test ... || mkdir ... 
+0

아 ... 그냥 완벽 해요! –