管道 shell 命令时破折号的含义是什么?

问题描述 投票:0回答:2
mongodump -db somedb --collection somecollection --out - | gzip > dump.gz

上面命令中的破折号是什么意思?看来和隧道有关。但查了bash参考资料后,我还是不明白这是什么意思。

bash sh
2个回答
7
投票

这意味着输出会发送到标准输出,因此管道会将其传递到

gzip
。这与
bash(1)
无关,而是取决于程序
mongodump
。在unix和linux中,破折号
-
与输入或输出相关,通常代表
stdin
stdout


4
投票

oxnz 正中目标。为了稍微扩展一下,一些命令通常需要一个文件作为最后的参数。在您描述的命令中,

mongodump
希望输出一个文件。

这很好,但您的目的是将其压缩到文件 dump_xyz 中。因此, mongodump 不是将文件作为最终参数,而是

-
表示标准输出(根据上下文,
-
可以表示标准输入)。 mongodump 的输出直接进入标准输出并通过管道直接进入等待的 gzip。 Gzip 获取 mongodump 的输出,动态压缩它并将压缩信息存储到 dump_xyz 文件中。

这里有一些关于

-
特殊字符的简单阅读:http://tldp.org/LDP/abs/html/special-chars.html#DASHREF2

© www.soinside.com 2019 - 2024. All rights reserved.