【问题标题】:Mkdir combined with "-p" flagMkdir 结合“-p”标志
【发布时间】:2018-09-30 21:08:46
【问题描述】:

我正在关注一个教程,其中我必须创建一个目录但还要传递-p 标志。我尝试运行它,我得到了一个syntax failure。所以我想弄清楚-p做了什么,发现这个缩写是privileged的缩写。并找到了

脚本作为“suid”运行(小心!)

开始寻找这意味着什么,发现它意味着设置用户标识并阅读它

– 运行设置了 SUID 位的命令或脚本时,其有效 UID 将成为文件所有者的 UID,而不是运行它的用户的 UID。 Source

不过,我还是不太明白。 我将目录设置为具有该特权的目的是什么?为什么要小心?另外,我尝试查看此处,但找不到任何说明(与我使用的不同搜索关键字)。另外,没有必要.. 但是,我为什么要这样做 mkdir -p src/entities 给我一个语法错误?我正在使用 Windows(但我也有 Anaconda 的 bash 包)。

【问题讨论】:

  • 据我所知,-p 表示如果需要创建父目录。例如。 mkdir -p src/entites 如果不存在,则创建 src
  • 你得到的错误信息是什么?
  • @dlmeetei 啊,这是有道理的。是的,还没有src 目录。所以我当时的研究完全没有。错误消息是syntax error,所以我最终单独创建了目录。我只是非常不确定-p 是什么意思。我猜我的环境没有设置为使用-p 那么?
  • 不确定 Windows,我说的是 Unix 的 -p,也许是环境问题
  • 您是在 Windows 上工作还是在 Unix/Linux 上工作?请注意,标记 cmd 指向 Windows。请相应地澄清和更新标签。谢谢!

标签: windows shell cmd flags mkdir


【解决方案1】:

看起来您正在学习 Unix 风格的教程,但在 Windows 上运行 cmd.exe 中的命令。

正如使用说明所说:

C:\>mkdir /?
Creates a directory.

MKDIR [drive:]path
MD [drive:]path

If Command Extensions are enabled MKDIR changes as follows:

MKDIR creates any intermediate directories in the path, if needed.
For example, assume \a does not exist then:

    mkdir \a\b\c\d

is the same as:

    mkdir \a
    chdir \a
    mkdir b
    chdir b
    mkdir c
    chdir c
    mkdir d

which is what you would have to type if extensions were disabled.

Windows 命令不使用 - 作为选项(尤其是,cmd 中内置的 mkdir 命令无法理解 -p)。


关于“特权”的部分用于 shell 选项 -p,如bash -p。与mkdir -p无关,在man mkdir中有解释:

-p, --parents

         如果存在则没有错误,根据需要创建父目录

但同样,这仅适用于 Unix mkdir,不适用于 Windows / cmd

【讨论】:

    【解决方案2】:

    "-p" 如果父目录不存在,则创建它们。

    例如:

    如果“第一个”目录不存在,则使用“-p”。

    mkdir -p first/second  # "first" parent directory is created
    

    如果“第一个”目录不存在,则没有“-p”。

    mkdir first/second  # "first" parent directory is not created 
    
    mkdir: cannot create directory ‘first/second’: No such file or directory
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 2014-01-27
      • 2011-12-23
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 2019-02-18
      相关资源
      最近更新 更多