【问题标题】:mkdir -pv not verbosemkdir -pv 不详细
【发布时间】:2015-04-04 10:41:02
【问题描述】:

如果我运行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,我不认为这是值得我进一步追求。

【问题讨论】:

  • mkdir --help 是否为您报告--verbose?那可能是 GNU 主义。
  • 你有没有提交过这方面的错误报告?
  • @jsejcksn 是的,我最终确实返回并提交了一份错误报告,并被告知这是按预期工作的(完整回复已添加到我的问题中)。
  • 这很不幸。感谢您填写报告。
  • 我也遇到了这个问题。我做了mkdir -pv folder1/folder2/folder3,它创建了所有目录,但没有控制台输出。但是,我使用mkdir -v foldername 获得控制台输出。真可惜。

标签: macos bash mkdir


【解决方案1】:

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

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

感谢SnoringFrog:

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

【讨论】:

  • 啊,是的,忘记了。因为我已经安装了 Gnu 工具,所以我只需要将 mkdir 别名为 gmkdir。我将在您的答案中对此进行一些编辑,因为它至少可以帮助任何对此进行操作的人获得他们期望的行为。
【解决方案2】:

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

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

思考不同再思考?!

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    相关资源
    最近更新 更多