尾巴 | gzip 给出的文件长度与 tail 之后的 gzip 不同

tail | gzip gives different file length than gzip after tail

我想压缩文件的最后 N 个字节。然而,尾| gzip 在 tail 之后给出与 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 字段中。 如果压缩流,则没有原始文件名。

这似乎解释了你的情况的不同。