【问题标题】:Why does wget -O- output to stdout? [duplicate]为什么 wget -O- 输出到标准输出? [复制]
【发布时间】:2017-12-19 00:50:59
【问题描述】:

选项-O file 用于将wget 输出到特定的file

为什么wget -O- "$url" 输出到标准输出?在man wget 中没有-O- 这样的表达式。为什么-O-中的第二个字符-表示下载"$url"并输出到stdout?

【问题讨论】:

    标签: bash wget


    【解决方案1】:

    根据 posix 标准,如果程序采用文件路径参数作为输出,- 用于表示“标准输出”。手册页在-O 下对此进行了描述。

    【讨论】:

    • 如果单字母选项-X 接受参数,您可以使用-X arg-Xarg。这绝对是标准的。
    • 它是字面意义上的“标准”,它被标准化为 POSIX 实用程序参数语法指南的一部分——参见pubs.opengroup.org/onlinepubs/9699919799/basedefs/… [A] 符合要求的实现还应允许应用程序指定选项和 option-argument 在同一参数字符串中,不插入空白字符,这是实用程序语法指南 6 所指的“除非另有说明”子句(接近同一文档的末尾)。
    • 另外,请参阅同一份文档末尾的指南 13——这意味着 - 指的是标准输入或标准输出不仅仅是一个“松散的约定”,而且同样是一个 POSIX 指令(尽管只是一个适用于 POSIX 标准化实用程序的命令)。
    • 我的立场是正确的。所以带有可选参数的参数应该省略空格。带有必需参数的选项(例如 wget 的-O应该 有一个空格,但没有它必须 也可以工作。有意思,谢谢指正。
    【解决方案2】:

    https://www.gnu.org/software/wget/manual/wget.html#Download-Options:

    '-O 文件'
    '--output-document=文件'

    文档不会被写入相应的文件,而是将所有文件连接在一起并写入文件如果 '-' 用作 file,文档将被打印到标准输出,禁用链接转换。(使用 './-' 打印到字面上名为 ' 的文件-'。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-22
      • 1970-01-01
      • 2011-03-09
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多