포함 디렉터리를 생성할 수 없습니다.

포함 디렉터리를 생성할 수 없습니다.

/dir1/dir2/dir3/dir4다음과 같은 새 디렉토리를 만들고 싶지만 그럴 수 없습니다.

상위 디렉토리와 새 상위 디렉토리에서 하나씩 디렉토리를 생성하면 모든 것이 잘 작동합니다.

lm@debian:~$ sudo mkdir -v ./Pictures/Photos1/onbike2023/
mkdir: cannot create directory ‘./Pictures/Photos1/onbike2023/’: No such file or directory
lm@debian:~$ sudo mkdir -v ./Pictures/Photos1/
mkdir: created directory './Pictures/Photos1/'
lm@debian:~$ sudo mkdir -v ./Pictures/Photos1/onbike2023/
mkdir: created directory './Pictures/Photos1/onbike2023/'
lm@debian:~$ 

내가 뭘 잘못했나요?

답변1

mkdir중간 디렉터리는 기본적으로 생성되지 않습니다. 즉, mkdir foo/bar/baz성공 하고 싶다면 이미 존재하는 foo것이 가장 좋습니다 foo/bar.

그러나 이 동작을 변경할 수 있습니다 mkdir -p foo/bar/baz. 이 옵션을 사용하면 필요한 경우 중간 디렉터리가 생성됩니다. mkdir오류 코드가 foo/bar/baz이미 존재하는 경우 종료를 유발하지 않는다는 추가 이점이 있습니다 .

답변2

에서 추출됨man mkdir

-p, --parents
              no  error if existing, make parent directories as needed, with their file modes unaffected by
              any -m option.

관련 정보