温馨提示×

linux如何比较文件差异

小樊
37
2026-09-10 12:51:19
栏目: 智能运维

在 Linux 下比较文件差异,常用的方法有以下几种,按使用场景从简单到高级说明:


1. diff —— 最常用

比较两个文本文件的差异。

diff file1.txt file2.txt

常见选项:

  • -u:以 unified 格式显示(推荐,易读)
  • -c:context 格式
  • -r:递归比较目录
  • -q:只显示是否不同

示例:

diff -u a.txt b.txt

输出中:

  • - 开头:只在 file1 中
  • + 开头:只在 file2 中

2. cmp —— 比较二进制文件

逐字节比较,适合非文本文件。

cmp file1 file2

只显示第一个不同位置:

cmp -l file1 file2

3. comm —— 按行比较已排序文件

要求文件已排序。

comm file1.txt file2.txt

输出三列:

  • 第1列:只在 file1
  • 第2列:只在 file2
  • 第3列:两者都有

示例(只显示不同):

comm -3 file1.txt file2.txt

4. vimdiff / nvim -d —— 可视化对比

适合仔细查看和编辑差异。

vimdiff a.txt b.txt

或:

nvim -d a.txt b.txt

5. colordiff —— 彩色 diff

diff 的增强版(需安装)。

colordiff file1 file2

6. sdiff —— 并排比较

sdiff file1 file2

7. 图形化工具(可选)

  • meld
  • kdiff3
meld file1 file2

常见场景建议

场景 推荐命令
文本差异 diff -u
二进制 cmp
快速判断不同 diff -q
交互查看 vimdiff
目录对比 diff -r

如果你有具体文件类型(文本/配置/代码/二进制)使用场景,我可以给更合适的示例。

0