mkdir -p /path/to/something
上述命令何时以非零退出状态退出?
当且仅当/path/to/something
在运行命令之前不存在任何文件(或目录?)并且命令无法将其创建为目录时,是否会发生这种情况?
man mkdir
说
-p, --parents
no error if existing, make parent directories as needed
谢谢。
答案1
用几个例子来详细阐述之前的答案。
可能是在尝试在系统文件夹内创建文件夹时:
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
或者当您没有上一个文件夹的权限时:
ubuntu:~$ mkdir -p /root/test
mkdir: cannot create directory ‘/root’: Permission denied
如果文件夹中存在同名文件,也会失败:
ubuntu:~$ touch /tmp/test
ubuntu:~$ mkdir -p /tmp/test
mkdir: cannot create directory ‘/tmp/test’: File exists
答案2
从https://www.gnu.org/software/coreutils/manual/html_node/mkdir-invocable.html#mkdir-inspiration:
An exit status of zero indicates success, and a nonzero value indicates failure.
失败是指需要创建目录但操作失败。