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

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

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

gzip -l compressedfile.gz

但是,如果我通过管道输出,有没有办法获取压缩文件的大小?例如使用这个命令:

gzip -fc testfile > testfile.gz

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

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

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

答案1

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 或类似的东西解析命令的输出,以提取最后一行的关键部分。

相关内容