在 Linux 下比较文件差异,常用方法有以下几种,按使用场景从简单到高级说明:
diff用于逐行比较文本文件
diff file1.txt file2.txt
常见选项:
diff -u file1 file2 # 显示统一格式(常用)
diff -r dir1 dir2 # 递归比较目录
diff -i file1 file2 # 忽略大小写
diff -w file1 file2 # 忽略空格差异
示例输出说明:
< 表示只在 file1 中
> 表示只在 file2 中
colordiffdiff 的彩色版本(需安装)
colordiff file1 file2
安装:
sudo apt install colordiff # Debian/Ubuntu
sdiff左右并排显示差异
sdiff file1 file2
vimdiff适合查看并编辑差异
vimdiff file1 file2
或:
vim -d file1 file2
操作简要:
]c 下一个差异[c 上一个差异:diffget 取对方内容:diffput 写入对方适合不熟悉命令行的用户
meld file1 file2
安装:
sudo apt install meld
其他:
kdiff3komparecmpcmp file1 file2
只显示第一个不同字节位置。
xxd + diffxxd file1 > a.hex
xxd file2 > b.hex
diff a.hex b.hex
diff -q file1 file2
只输出是否不同,不显示内容。
| 场景 | 推荐命令 |
|---|---|
| 看文本差异 | diff -u |
| 彩色直观 | colordiff |
| 并排查看 | sdiff |
| 编辑合并 | vimdiff |
| 图形比较 | meld |
| 二进制 | cmp |
如果你有具体文件类型(如配置文件、代码、日志、二进制)或比较目的(找不同、合并、同步),我可以给你更精确的命令示例。