Gzip -c 通过管道有关系吗?

Gzip -c 通过管道有关系吗?

我有时看到两种写作方式:有和没有-c

以下两种情况的输出是否相同且速度是否相同?

mysqldump -u root dbname | gzip > test.sql
mysqldump -u root dbname | gzip -c > test.sql

那么连续管道怎么样?

mysqldump -u root dbname | gzip | anotherprogram

感谢澄清

答案1

根据man gzip
如果没有指定文件,或者文件名为“-”,则标准输入将被压缩到标准输出。

在所有情况下,您都将源流传输到gzipSTDIN,而没有指定要压缩的内容作为源文件。在这些情况下,gzip默认情况下将压缩流发送到 STDOUT,这使得-c选项无用/多余。

在这种情况下,当您这样调用时,该-c选项很有用,而不是gzipgzip -c sourceFile
压缩源文件+添加扩展名GZ+删除源文件
它将把压缩流发送到 STDOUT,并且不会删除源文件
例如:

gzip -c sourceFile | anotherProgram

相关内容