问题描述
我想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字段中。 如果压缩流,则没有原始文件名。
这似乎可以说明您情况的不同。