if [ ! -d /home/dir ]; then
mkdir /home/dir
fi
어느 날 친구와 저는 수업 시간에 이런 질문을 받았습니다. 우리 둘 다 그것에 대해 서로 다른 대답을 했습니다. 하지만 저는 그 친구에게 제가 옳을 수도 있다는 것을 증명하고 싶었습니다.
그는 "/home/dir 디렉토리가 존재하지 않는 경우에만 생성한다"고 말합니다.
나는 아니오라고 말했습니다. "/home/dir 디렉토리를 삭제하고 다시 생성하십시오"
누가 옳습니까? ...아니면 우리 모두가 틀렸나요?
답변1
당신의 친구가 거의 옳습니다. 스크립트는 /home/dir
아직 디렉토리가 아닌 경우에만 생성됩니다. (다른 것이라면 mkdir
실행은 되지만 실패할 것입니다.)
[
테스트를 소개합니다 ! -d /home/dir
. 여기에 존재하고 디렉토리인지 -d /home/dir
확인한 다음 이를 무효화합니다. 이 모든 것이 / 에 포함된다는 것은 아직 디렉토리가 아닌 경우 실행 중임을 의미합니다 ./home/dir
!
if
then
/home/dir
mkdir /home/dir
구체적으로 mkdir
모든 것을 좀 더 간결하게 작성하세요.
mkdir -p /home/dir
답변2
당신의 친구 말이 맞습니다. "그렇지 않으면 디렉토리입니다"처럼
하지만 그에게 조건 전체를 취소하고 그냥 써도 된다고 말해주세요mkdir -p /home/dir