尾巴gzip尾部后给出的文件长度与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个字节?

解决方法

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

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

这似乎可以说明您情况的不同。