mkdir -p /path/to/something
Run Code Online (Sandbox Code Playgroud)
上述命令何时以非零退出状态退出?
当且仅当/path/to/something
在运行命令之前不作为任何文件(或作为目录?)存在并且命令无法将其创建为目录时,它是否会发生?
man mkdir
说
-p, --parents
no error if existing, make parent directories as needed
Run Code Online (Sandbox Code Playgroud)
谢谢。
用几个例子来详细说明前面的答案。
可能是在尝试在系统文件夹中创建文件夹时:
ubuntu:~$ mkdir /proc/test
mkdir: cannot create directory ‘/proc/test’: No such file or directory
ubuntu:~$ mkdir -p /dev/null/test
mkdir: cannot create directory ‘/dev/null’: Not a directory
Run Code Online (Sandbox Code Playgroud)
或者当您无权访问上一个文件夹时:
ubuntu:~$ mkdir -p /root/test
mkdir: cannot create directory ‘/root’: Permission denied
Run Code Online (Sandbox Code Playgroud)
如果文件夹中有同名文件,它也会失败:
ubuntu:~$ touch /tmp/test
ubuntu:~$ mkdir -p /tmp/test
mkdir: cannot create directory ‘/tmp/test’: File exists
Run Code Online (Sandbox Code Playgroud)