我有时看到两种写作方式:有和没有-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
:
”如果没有指定文件,或者文件名为“-”,则标准输入将被压缩到标准输出。“
在所有情况下,您都将源流传输到gzip
STDIN,而没有指定要压缩的内容作为源文件。在这些情况下,gzip
默认情况下将压缩流发送到 STDOUT,这使得-c
选项无用/多余。
在这种情况下,当您这样调用时,该-c
选项很有用,而不是gzip
gzip -c sourceFile
压缩源文件+添加扩展名GZ+删除源文件
它将把压缩流发送到 STDOUT,并且不会删除源文件。
例如:
gzip -c sourceFile | anotherProgram