GNU diff
基本语法(Synopsis)
diff [OPTION]... FILE1 FILE2
diff [OPTION]... DIR1 DIR2[] 表示可选项,... 表示可重复;大写名称表示需要替换的参数。
基本功能与推荐用法
diff 逐行比较文件或目录,统一格式输出可直接用于补丁和代码审查。
diff old.txt new.txt
diff -u old.txt new.txt # 统一格式
diff --color=auto -u old.txt new.txt
diff -q old.txt new.txt # 只报告是否不同
diff -r dir-old/ dir-new/ # 递归比较目录
diff -u <(sort a.txt) <(sort b.txt) # 比较排序后内容退出状态:
0:没有差异。1:发现差异。- 大于
1:发生错误。
推荐脚本显式区分“有差异”和“执行失败”,不要把退出状态 1 一律当异常。
比较 Git 工作区优先使用 git diff,它理解暂存区、重命名和仓库属性。
示例中的选项、参数与子命令
本表解释本页示例实际出现的选项、参数、子命令及必要的辅助命令语法。
| 语法元素 | 含义 |
|---|---|
-u | 生成 unified diff,包含上下文行。 |
--color=auto | 在终端支持时自动使用颜色。 |
-q | 只报告文件是否不同,不输出差异内容。 |
-r | 递归比较目录。 |
<(COMMAND) | zsh 进程替换:把命令输出作为临时文件交给 diff。 |