curl的-o选项是什么意思?

23
我本想从https://github.com/creationix/nvm下载nvm,但意外发现以下命令:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

有人知道-o后面的短横线代表什么吗?在man手册中没有提到,我也找不到任何线索。我尝试过不加-o-选项,它仍然可以工作,所以我想知道它可能是什么意思?

与在cat - 或其他标准/常规情况下,当预期为文件名时具有相同含义。 - Charles Duffy
1个回答

22

curl-o选项可以让您指定一个输出文件。在此上下文中,-指的是标准输出(stdout),这意味着curl将其响应输出到作为bash调用的标准输入的标准输出。

在这种情况下,它可以被省略,因为输出到stdoutcurl的标准行为。

chepner所述,当您同时下载多个资源并且只想在stdout上显示其中一个时,它可能变得有用:

curl -o- -o fileA -o fileB url1 url2 url3

在这种情况下,url1将被输出到stdouturl2将被输出到fileAurl3将被输出到fileB
请注意,这仍然可以避免,因为没有匹配输出规范的资源将被输出到stdout。以下命令与前一个命令的行为相同:
curl -o fileA -o fileB url2 url3 url1

1
由于-o每个URL只能使用一次,因此它可能作为一种将某些URL写入文件,而将其他URL输出到标准输出的方法: curl -o url1.html -o - -o url3.html "$URL1" "$URL2" "$URL3" - chepner
@chepner 谢谢,我曾经有一个很好的理由使用过它,但是现在想不起来了。 - Aaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接