diff命令选对选项可高效比对文件:-u输出易读上下文并支持补丁,-q快速判断是否一致,-i/-w/-B等忽略干扰,-y并排查看,colordiff增强高亮,sort预处理适配乱序内容。

直接用 diff 命令就能看出两个文本文件哪几行不同,关键在选对选项——日常看改动用 -u,快速判断是否一致用 -q,比配置或代码时再加 -i、-w 等忽略干扰项。
推荐统一格式(-u):带上下文,易读又可当补丁
默认输出像 5c5、7d6 这类符号,对多数人不直观。加 -u 后:
-
--- file1.txt表示原文件,+++ file2.txt表示目标文件 - 以
-开头是删除行,+开头是新增行 - 前后各带 3 行上下文,能清楚看到改动发生的“环境”
- 输出可直接保存为
.patch文件,供后续应用
忽略常见干扰:空格、大小写、注释这些不用较真
比配置文件或日志时,空行、缩进、注释常引发“假差异”,可用这些选项过滤:
-
-i:忽略大小写,比如Port和port不报不同 -
-w:跳过所有空白字符(空格、制表符、换行符) -
-B:忽略纯空行 -
-I '^[[:space:]]*#':正则忽略以#开头的注释行 - 多个选项可连用,如
diff -uwB file1.conf file2.conf
并排查看(-y):左右对照,一眼锁定差异位置
适合需要直观比对内容结构的场景:
-
diff -y file1.txt file2.txt:左右分栏显示,相同行对齐,不同行用|、、>标出 - 加
--suppress-common-lines只留不同行,界面更干净 - 加
-W 120指定总宽度,防止折行混乱
增强可读性与实用技巧
终端里扫一大片文字容易漏细节,几个小技巧提升效率:
- 装
colordiff(apt install colordiff),再跑colordiff -u file1 file2,增删行自动高亮 - 差异太多?用
diff -u a b | less -R分页查看,less支持搜索和翻页 - 想比“内容一样但顺序乱”的文件(比如 JSON 数组、日志条目):
diff ,不生成临时文件 - 二进制文件(图片、编译产物)
diff会直接报Binary files differ,这是正常行为,不是错误











