无法创建包含目录

无法创建包含目录

我想创建一个看起来像/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.

相关内容