Linux 命令速查
压缩备份 man zdiff

zdiff

比较 gzip 压缩文件的内容

返回

补充说明

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

参考链接