폴더를 만들 때 mkdir -p가 완전히 안전합니까?


13

폴더가 있다고 가정 해보십시오.

./folder/

그 안에는 많은 파일과 하위 디렉토리가 있습니다.

내가 실행할 때 :

mkdir -p folder

경고조차 오류가 표시되지 않습니다. 이 명령으로 인해 손실되거나 변경된 것이 있습니까?


2
mkdir의 도움으로 디렉토리가 존재하지 않을 때만 디렉토리가 작성됩니다. 이것은 디렉토리가 존재할 때 아무것도 수행되지 않았다는 것을 의미합니다.
Marco

답변:


23

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

에 대한 수동 입력 mkdir


1
이 답변이 정확하지 않은 것 같습니다. -p 플래그를 사용하지 않으면 디렉토리가 존재하면 mkdir은 실제로 오류를 발생시킵니다.
Aaron Cicali

오류가 발생 if(err.code == 'EEXIST')하면 디렉토리가 이미 존재하면이 조건 과 같은 코드를 확인할 수 있습니다.
user403173

12

휴대용 스크립트의 말한다 POSIX, 의지 할 mkdir-p옵션 :

기존 디렉토리의 이름을 지정하는 각 디렉토리 피연산자는 오류없이 무시됩니다.

보고 된 오류가 없으면 -p옵션이 해당 작업을 수행 한 것입니다.

누락 된 중간 경로 이름 구성 요소를 작성하십시오.


4

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

mkdir -p 디렉토리가 이미 존재하면 오류가 발생하지 않습니다. 또한 디렉토리는 그대로 유지됩니다. 즉 내용이 그대로 유지됩니다.


0

너는 ~라고 말한다,

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

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

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

예를 들어에서 일반 사용자로 디렉토리를 만들려고 할 때도 같은 문제가 발생합니다 /etc.

뭐라고 -p의지 억제 대상 디렉토리가 이미 존재하는 경우 트리거 될 것이다 오류는

mkdir y
mkdir -p y

그러나 모든 경우에 당신은 아무것도 잃지 않으며 아무것도 변경되지 않습니다. 오류 상황에서는 예상 한 디렉토리가 없습니다.


이것은 답변보다 더 많은 의견처럼 보입니다.
G-Man,

나는 그 점에 대해 궁금해했지만 OP의 질문에서 " 실행할 때 mkdir -p folder경고조차도 오류가 표시되지 않습니다. " 라는 진술을 반박하고 있습니다.
roaima
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.