You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为何修改源文件名会影响其压缩文件的大小?

为何修改源文件名会影响其压缩文件的大小?

哈哈,这个问题确实挺有意思的——明明两个文件内容完全一致(你用cksum验证过了),改个名字压缩后大小居然不一样,我刚接触压缩工具的时候也被这个小细节困惑过!

其实原因很简单:gzip(包括你用到的pigz,它是gzip的并行优化版本)以及用7zip创建的.gz格式压缩包,默认都会把源文件的元数据(比如文件名、最后修改时间)写入到压缩包的头部区域里

你看你提供的终端输出里,两个源文件的修改时间是不一样的:

  • wps-office-11.1.0.11664-1.x86_64.rpm的修改时间是Jan 31 17:04
  • 复制后的wps.rpm修改时间是Jan 31 17:05

再加上两个文件的文件名长度、内容完全不同,这些元数据的差异就会导致压缩包的总大小出现细微差别——毕竟元数据也是要占字节数的呀!

如果想验证这个结论,你可以试试用gzip -n(或者pigz -n)参数重新压缩这两个文件,这个参数的作用是禁止存储文件名和时间戳元数据,压缩后你会发现两个.gz文件的大小完全一致了!

至于7zip的情况,它在生成.gz格式文件时,默认同样会保留源文件的文件名等元数据,所以也会出现相同的现象。

简单来说:压缩包的大小不仅取决于源文件的内容,还包含了工具默认添加的一些元数据,这些元数据的差异就是导致你看到的大小不同的原因~

备注:内容来源于stack exchange,提问作者NoobAdmin

火山引擎 最新活动