在 Linux 中比较文件差异,常用的方法有以下几种,按使用频率和场景从简单到高级介绍:
diff 命令(最常用)diff file1 file2
示例输出:
3c3
< hello
---
> Hello
含义:
< 表示 file1 的内容> 表示 file2 的内容3c3 表示第 3 行被修改| 参数 | 说明 |
|---|---|
-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
优点:
meldsudo apt install meld
meld file1 file2
kdiff3xxdiff适合不熟悉命令行的用户。
| 场景 | 推荐工具 |
|---|---|
| 快速查看文本差异 | diff -u |
| 编辑并合并差异 | vimdiff |
| 比较目录 | diff -rq |
| 二进制文件 | cmp |
| 彩色直观显示 | git diff / meld |
如果你愿意,可以告诉我:
我可以给你更精确的用法示例。