wget:这个尾随破折号代表/做什么?

时间:2015-11-30 19:01:08

标签: shell wget

wget http://ipinfo.io/ip -qO -

我是bash的新手,并且似乎无法弄清楚这个尾随短划线字符的作用(或者为什么在此命令中需要它)。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:7)

按照惯例(并非所有程序都遵循),文件名位置的破折号视情况而定是指stdin或stdout。由于这是-O(输出)的参数,因此它引用了stdout。

一种更详细的写法(在Linux或其他操作系统上,其中/dev/stdout可用于除shell之外的其他程序)将是:

wget http://ipinfo.io/ip --quiet --output-document=/dev/stdout

碰巧,此行为由POSIX Utility Syntax Guidelines定义。具体做法是:

  

准则5:   一个或多个没有选项参数的选项,后面跟最多一个带有选项参数的选项,在一个' - '后面被分组时应该被接受。分隔符。

...因此,-qO的处理方式与-q -O相同。

  

准则13:   对于使用操作数来表示要打开以进行读取或写入的文件的实用程序,' - '操作数应仅用于表示标准输入(或从上下文中清除指定输出文件时的标准输出)或名为 - 的文件。

...因此,明确指定了-的行为。

答案 1 :(得分:3)

在STDOUT处打印输出,通常是您的终端。

  

请参阅wget的联机帮助页,其中说:

     

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