补充说明
zdiff 是 gzip 套件提供的脚本,在比较前自动解压文件,然后调用 diff 输出差异。它把除自身选项外的参数原样传给 diff,因此 -u、-i、-w 等常用 diff 选项都可以使用。
只给一个文件时,zdiff 会把它与去掉 .gz 后缀的同名未压缩文件比较;给出两个文件时则比较两者。支持的文件类型取决于本机 zdiff 实现,通常至少支持 gzip,部分版本也能处理 bzip2、xz 等格式。
比较结果与直接解压后再 diff 相同,但不会在磁盘上留下临时解压文件。退出状态遵循 diff 约定:0 表示无差异,1 表示有差异,2 表示出错。脚本中可据此判断配置是否发生变化。
语法
zdiff [diff选项] 文件1 [文件2]
选项
-u:使用统一格式输出差异。-i:忽略大小写。-w:忽略空白字符差异。-q:仅在文件不同时报告,不输出具体差异。--help:显示帮助信息。--version:显示版本信息。
实例
# 比较两个压缩文件
zdiff old.conf.gz new.conf.gz
# 以统一格式显示差异
zdiff -u old.conf.gz new.conf.gz
# 与去掉 .gz 后缀的同名文件比较
zdiff config.gz
# 忽略空白差异
zdiff -w a.log.gz b.log.gz
# 在脚本中判断压缩配置是否变化
if zdiff -q config.gz config.new.gz; then
echo "配置未变化"
fi