mkdir -pv 不详细

mkdir -pv not verbose

如果我 运行 mkdir -pv-p 有效,但我没有得到详细的输出;但是,如果我 运行 只是 mkdir -v,则会按预期显示详细输出。同样值得注意的是,-v 的长格式似乎根本不起作用。

根据我的测试: mkdir -p a/b/c:创建 a/a/b/a/b/c/,没有输出到终端(如预期的那样)

mkdir -v d:创建 d/ 并输出 mkdir: created directory 'd'(如预期)

mkdir -pv e/f/g:创建 e/e/f/e/f/g/,不向终端输出(为什么?)

mkdir --verbose h:给出了 illegal option -- - 错误(为什么?)


更新:我就此问题向 Apple 提交了错误报告,并收到了以下回复:

他们的回答“-v 不适用”对我来说没有多大意义,因为 mkdir -v 工作得很好,但因为有各种解决方法,我什至不再使用 OSX, 我觉得不值得再追下去了。

Mac 使用基于 BSD 的代码,这些代码(大部分)POSIX 兼容但(大部分)没有 GNU 扩展(例如双破折号长选项)。手册页确实记录了 -v-p,并且 -p 有效但似乎抑制了 -v 选项(这可能是最有用的时候)。

您的一个选择是向 Darwin 或 BSD 团队或 Apple 提交错误。它就是这样儿的;可以说这不是应该的方式。 (GNU mkdir 支持 -v 并在与 -p 一起使用时打印它创建的目录,这更有意义,并且支持 'it is a bug' 争论。)

感谢SnoringFrog:

另一种选择是在 OSX 上安装和使用 GNU mkdir 命令。它是 GNU coreutils 的一部分,您可以按照 How to replace Mac OS X utilities with GNU core utilities at Ask Different 中的说明安装它。然后,您可以别名 mkdir 指向 gmkdir 以获得预期的行为(假设您在安装 GNU 工具时不使用 --default-names)。

如果日志记录很重要,您也可以这样做(因为 -v 标志在简单情况下有效):

mkdir -v path && 
mkdir -v path/to && 
mkdir -v path/to/{destination1,destination2,etc} ; 

不同的想法再想想?!