use*_*083 15 macos mkdir operand
我一直在阅读OSX Man页面的描述.它有以下描述mkdir -p:
-p
根据需要创建中间目录.如果未指定此选项,则每个操作数的完整路径前缀必须已存在.另一方面,如果指定了此选项,则如果作为操作数给出的目录已存在,则不会报告错误.使用由当前umask修改的rwxrwxrwx(0777)的权限位创建中间目录,以及所有者的写入和搜索权限.
我不太关注这个描述.特别是"如果未指定此选项,则每个操作数的完整路径前缀必须已存在.另一方面,如果指定了此选项,则如果作为操作数给出的目录已存在,则不会报告错误."
有人对这个解释有一个例子吗?
dec*_*eze 31
鉴于此目录结构:
/
foo/
bar/
baz/
Run Code Online (Sandbox Code Playgroud)
这显然有效:
mkdir /foo/x
Run Code Online (Sandbox Code Playgroud)
这将不工作:
mkdir /foo/x/y
Run Code Online (Sandbox Code Playgroud)
因为/foo/x不存在,/foo/x/y所以无法在其下创建目录.该前缀 /foo/x/的需要,以创建存在/foo/x/y.
这是-p进来的地方.这有效:
mkdir -p /foo/x/y
Run Code Online (Sandbox Code Playgroud)
/foo/x将隐含地与...一起创建/foo/x/y.
如果你试试:
mkdir /bar/baz
Run Code Online (Sandbox Code Playgroud)
您将收到目录已存在的错误.但是,如果你这样做:
mkdir -p /bar/baz
Run Code Online (Sandbox Code Playgroud)
你不会得到错误,它只是默默地忽略所有已经存在的目录,并且对结果不满意而不做任何事情.
| 归档时间: |
|
| 查看次数: |
35212 次 |
| 最近记录: |