首页 > 解决方案 > 尾巴 | gzip 在尾部后给出的文件长度与 gzip 不同

问题描述

我想压缩文件的最后 N 个字节。然而,尾| gzip 在尾部后给出的输出长度与 gzip 不同。

tail --bytes=1000 ./input > ./output.tmp
gzip -k output.tmp

tail --bytes=1000 ./input | gzip > ./output.gz

stat --format=%n:%s *

input         : 4843152
output.gz     : 449
output.tmp    : 1000
output.tmp.gz : 460

为什么tail然后gzip给出 460 字节但tail | gzip给出 449 字节?

标签: pipegziptail

解决方案


http://www.zlib.org/rfc-gzip.html#header-trailer

如果压缩文件,原始文件名将记录在 FNAME 字段中。如果压缩流,则没有原始文件名。

这似乎解释了你的情况的差异。


推荐阅读