温馨提示×

如何比较Linux文件差异

小樊
46
2026-08-25 04:24:31
栏目: 智能运维

在 Linux 中比较文件差异,常用的方法有以下几种,按使用频率和场景从简单到高级介绍:


一、使用 diff 命令(最常用)

1️⃣ 基本用法

diff file1 file2

示例输出:

3c3
< hello
---
> Hello

含义:

  • < 表示 file1 的内容
  • > 表示 file2 的内容
  • 3c3 表示第 3 行被修改

2️⃣ 常用参数

参数 说明
-u 统一格式(unified diff),常用于 patch
-y 并排显示
-i 忽略大小写
-w 忽略空白字符
-r 递归比较目录
--color 彩色输出(部分版本支持)

示例:

diff -u file1 file2
diff -y file1 file2

二、使用 vimdiff(可视化对比)

适合查看和编辑差异:

vimdiff file1 file2

常用操作:

  • ]c / [c:跳转到下/上一个差异
  • do:把对方内容复制到当前文件
  • dp:把当前内容复制到对方
  • :q:退出

三、使用 colordiff(彩色 diff)

安装:

sudo apt install colordiff   # Debian/Ubuntu
sudo yum install colordiff   # CentOS/RHEL

使用:

colordiff file1 file2

四、使用 cmp(逐字节比较)

适合比较二进制文件:

cmp file1 file2

输出示例:

file1 file2 differ: byte 10, line 1

不输出内容,只告诉你是否不同。


五、比较目录差异

diff -r dir1 dir2

只查看哪些文件不同:

diff -rq dir1 dir2

六、使用 git diff(即使不是 Git 仓库)

git diff file1 file2

优点:

  • 输出格式清晰
  • 支持彩色显示

七、图形化工具(可选)

  • meld
sudo apt install meld
meld file1 file2
  • kdiff3
  • xxdiff

适合不熟悉命令行的用户。


八、常见场景推荐

场景 推荐工具
快速查看文本差异 diff -u
编辑并合并差异 vimdiff
比较目录 diff -rq
二进制文件 cmp
彩色直观显示 git diff / meld

如果你愿意,可以告诉我:

  • 是比较 文本还是二进制文件
  • 是否要 生成 patch
  • 是否用于 脚本自动化

我可以给你更精确的用法示例。

0