我使用“diff”命令比较使用 zip 生成的两个压缩文件,起始文件完全相同,结果显示它们不同。但是,当我解压它们并使用“diff”命令时,没有显示任何差异。我在 zip 和 gzip 中都注意到了这一点。
答案1
如果您确实想比较压缩内容,您可能还想使用 zdiff。
答案2
其中一个字段gzip 标头两个文件之间的差异。其中一个字段是压缩文件的最后修改时间(自 1970 年以来以秒为单位),或者如果压缩数据不是从文件中读取的,则为文件压缩的时间。
即使一秒钟的差异也足以导致 gzip 文件不匹配。
答案3
您可以使用 gzip 选项--no-name
(或-n
)阻止 gzip 将原始文件名和时间戳添加到 gzip 标头。这应该可以防止数据相同时出现不匹配的情况(假设使用相同的压缩级别)。将此选项添加到 gzip 命令的一种方法是设置GZIP
环境变量,以便每个 gzip 命令都使用该选项。例如,在 Bourne 兼容的 shell(如 bash)中,
export GZIP="--no-name -6"
或者
export GZIP=--no-name
答案4
可能有两个原因:
- 同一压缩程序使用不同的压缩算法,或
- 不同的压缩程序