如果我运行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,我不这样做认为值得继续追求我。
答案 0 :(得分:8)
Macs使用基于BSD的代码(大部分)符合POSIX标准,但(大多数情况下)没有GNU扩展(例如双短划分选项)。手册页确实记录了-v
和-p
,-p
可以正常工作,但确实可以抑制-v
选项(可能是最有用的选项)。
您的一个选择是向Darwin或BSD团队或Apple提交错误。它就是这样儿的;可以说它不是应该的样子。 (GNU mkdir
支持-v
并打印与-p
一起使用时创建的目录,这更有意义,并且支持“这是一个bug”争用。)
感谢SnoringFrog:
另一种选择是在OSX上安装和使用GNU mkdir
命令。它是GNU coreutils的一部分,您可以按照How to replace Mac OS X utilities with GNU core utilities Ask Different中的说明安装它。然后,您可以将mkdir
别名指向gmkdir
以获得预期的行为(假设您在安装GNU工具时不使用--default-names
)。
答案 1 :(得分:0)
如果日志记录很重要,您也可以执行此操作(因为在简单情况下-v
标志有效):
mkdir -v path ;
mkdir -v path/to ;
mkdir -v path/to/destination ;
思考不同或再思考?!