Pipe

使用 gzip 獲取管道輸出的壓縮大小?

  • September 27, 2015

要獲得已壓縮文件的未壓縮大小,我可以在 gzip 實用程序中使用 -l 選項:

gzip -l compressedfile.gz

但是,如果我正在管道輸出,有沒有辦法獲得壓縮文件的大小?例如使用這個命令:

gzip -fc testfile > testfile.gz

或者特別是如果我將輸出重定向到我可能無法直接訪問的地方(伺服器)

gzip -fc testfile > /dev/null
gzip -fc testfile | ssh serverip "cat > file.gz"

這可以做到嗎?我需要壓縮比或壓縮大小。

dd救援。

gzip -fc testfile | dd of=testfile.gz
0+1 records in
0+1 records out
42 bytes (42 B) copied, 0.00018711 s, 224 kB/s

或在您的ssh範例中

gzip -fc testfile | dd | ssh serverip "cat > file.gz"
0+1 records in
0+1 records out
42 bytes (42 B) copied, 0.00018711 s, 224 kB/s

然後只需使用 awk 或類似的方法解析命令的輸出,以提取最後一行的關鍵部分。

引用自:https://unix.stackexchange.com/questions/232254