zdiff 是专为比较 gzip 压缩文件设计的命令,能自动解压并逐行对比内容,支持非标准后缀、混合类型(压缩/未压缩),兼容 diff 所有选项,但本身不递归,需配合其他命令实现目录级比对。

zdiff 是专为比较 gzip 压缩文件设计的命令,它能自动解压并逐行对比内容,无需手动解压、保存临时文件或担心后缀名是否规范。
zdiff 的基本用法
直接传入两个 .gz 文件即可:
zdiff file1.txt.gz file2.txt.gz
输出格式与 diff 完全一致——比如 2c2 表示第 2 行被修改,> 后是第二个文件的内容。如果两文件完全相同,zdiff 不输出任何内容(退出码为 0)。
支持非标准后缀和混合类型
zdiff 不依赖文件扩展名判断是否压缩,只要文件是 gzip 格式就能识别:
- 一个带
.gz,另一个无后缀但实际是 gzip 压缩:仍可正常比对 - 一个压缩、一个未压缩:也能自动适配(如
zdiff data.log.gz data.log)
这避免了用 gunzip 失败时的报错(例如 “unknown suffix”),省去预处理步骤。
配合 diff 常用选项增强可读性
zdiff 支持所有 diff 的选项,推荐组合使用:
-
zdiff -u a.conf.gz b.conf.gz:生成带上下文的统一格式,适合存档或生成补丁 -
zdiff -i -w config1.gz config2.gz:忽略大小写和空白差异,聚焦逻辑变更 -
zdiff -q log1.gz log2.gz:仅返回是否不同(退出码 0 或 1),适合脚本判断
对比目录中同名压缩文件
若要批量比较两个目录下对应 .gz 文件,可用 diff -r 配合 zdiff 替换:
- 先用
diff -r dir1/ dir2/找出哪些.gz文件有差异 - 再对具体文件运行
zdiff查看内容级区别
注意:zdiff 本身不递归,只处理单个文件对;目录级比对需结合其他命令协同完成。


















