mkdir -p를 사용하여 이미 존재하는 폴더를 만드는 것이 완전히 안전합니까?

mkdir -p를 사용하여 이미 존재하는 폴더를 만드는 것이 완전히 안전합니까?

폴더가 있다고 가정해 보겠습니다.

./folder/

내부에는 많은 파일과 하위 디렉터리도 있습니다.

내가 실행할 때 :

mkdir -p folder

오류나 경고도 표시되지 않습니다.

그래서 확인하고 싶었습니다. 이 명령의 결과에 누락되거나 변경된 것이 있습니까?

답변1

mkdir -p디렉토리가 이미 존재하고 디렉토리의 내용이 변경되지 않으면 오류가 발생하지 않습니다.

수동 입력mkdir

답변2

이식 가능한 스크립트는 POSIX에 의존합니다.mkdir~의-p옵션:

목차기존 디렉터리의 이름을 지정하는 피연산자는 오류 없이 무시되어야 합니다.

오류가 보고되지 않은 경우-p옵션이 작업을 완료했습니다.

누락된 중간 경로 이름 구성 요소를 만듭니다.

답변3

디렉토리가 이미 존재하는 경우 mkdir은 오류를 표시합니다.

목차-피디렉터리가 이미 존재하는 경우 오류가 발생하지 않습니다. 또한 디렉터리는 변경되지 않은 상태로 유지됩니다. 즉, 내용은 그대로 유지됩니다.

답변4

당신이 그렇게 말하는데,

실행하면 mkdir -p folder오류나 경고도 표시되지 않습니다.

명령이 실패하면 오류가 표시됩니다. 이 -p플래그는 디렉토리가 이미 존재하는 경우에만 오류를 억제합니다.

touch x
mkdir -p x
mkdir: cannot create directory ‘x’: File exists

에서 일반 사용자로 시도하면 /etc.

억제 되는 것은 -p대상 디렉터리가 이미 존재할 때 발생하는 오류입니다.

mkdir y
mkdir -p y

그러나 모든 경우에 당신은 아무것도 잃지 않고 아무것도 바꾸지 않습니다. 오류가 발생하면 원하는 디렉터리를 얻을 수 없습니다.

관련 정보