디렉터리가 없으면 test 명령을 사용하여 디렉터리를 만듭니다.

디렉터리가 없으면 test 명령을 사용하여 디렉터리를 만듭니다.

이 스크립트 코드가 dir2가 있는지 올바르게 테스트하고 존재하지 않으면 생성하는지 궁금합니다. Dir1이 이미 존재합니다.

[ ! -d /dir1/dir2  ] && mkdir /dir1/dir2

답변1

dir1/dir2존재하지만 디렉토리가 아닌 경우 명령이 실패할 수 있습니다. 존재 여부 를 테스트하려면 dir1/dir2다음을 사용하십시오.-e

[ -e dir1/dir2 ] || mkdir dir1/dir2

정말로 dir1/dir2디렉터리여야 하고 해당 이름을 가진 일반 파일이 잘못되어 교체되어야 하는 경우 이 상황을 테스트할 수 있습니다.

[ -e dir1/dir2 ] && [ ! -d dir1/dir2 ] && rm dir1/dir2
[ -d dir1/dir2 ] || mkdir dir1/dir2

관련 정보