
我有時看到兩種寫作方式:有和沒有-c
以下 2 個案例輸出相同且速度相同嗎?
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
而不是
壓縮sourceFile+新增副檔名GZ+刪除sourceFile
它將發送壓縮流到 STDOUT 並且不會刪除原始檔。
例如:
gzip -c sourceFile | anotherProgram