使用 gzip 获取管道输出的压缩大小?

Arm*_*men 6 pipe compression gzip

要获得已压缩文件的未压缩大小,我可以在 gzip 实用程序中使用 -l 选项:

gzip -l compressedfile.gz
Run Code Online (Sandbox Code Playgroud)

但是,如果我正在输出输出,有没有办法获得压缩文件的大小?例如使用这个命令:

gzip -fc testfile > testfile.gz
Run Code Online (Sandbox Code Playgroud)

或者特别是如果我将输出重定向到我可能无法直接访问的地方(服务器)

gzip -fc testfile > /dev/null
gzip -fc testfile | ssh serverip "cat > file.gz"
Run Code Online (Sandbox Code Playgroud)

这能做到吗?我需要压缩比或压缩大小。

ste*_*eve 7

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
Run Code Online (Sandbox Code Playgroud)

或者在你的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
Run Code Online (Sandbox Code Playgroud)

然后只需使用 awk 或类似工具解析命令的输出,以提取最后一行的关键部分。