在UOS系统中可用预装diff命令快速比对文件:无输出表示相同;-u显示上下文差异;-q或--brief仅判断是否不同;递归比对目录用diff -rq dir1/ dir2/。

在UOS系统中快速确认两个文本文件内容是否一致,或定位具体哪几行发生了增删改,必须依赖终端原生命令而非图形界面——因为diff工具默认已预装,无需联网下载、不占桌面资源、响应速度毫秒级。
用diff命令比对两个文件
打开终端(Ctrl + Alt + T),直接执行:
diff 文件A路径 文件B路径
例如:
diff /home/user/config_old.txt /home/user/config_new.txt
若两文件完全相同,终端将【不输出任何内容】;只要出现输出,就代表存在差异,格式形如“2c2”表示第2行被修改,“3a4”表示在文件A第3行后新增了文件B的第4行。
用统一格式(-u)让差异一目了然
基础diff输出对新手极不友好,无法看出上下文。加-u参数后,每处差异会连带显示前后各三行原始内容:
diff -u config_old.txt config_new.txt
输出中以@@ -10,5 +10,6 @@开头的块,表示原始文件从第10行起共5行,目标文件对应位置是第10行起共6行;【-开头的行属于旧文件独有,+开头的行属于新文件独有】。
如需把结果保存为补丁文件供后续查阅或提交,追加重定向即可:
diff -u config_old.txt config_new.txt > changes.patch
只看“哪里不同”,不关心“怎么不同”
方法一:用-q参数获取简洁结论
diff -q config_old.txt config_new.txt
终端只输出“Files config_old.txt and config_new.txt differ”或静默,适合脚本判断或批量检查。
方法二:用--brief参数(效果同-q,语义更清晰)
diff --brief config_old.txt config_new.txt
注意:-q和--brief都不会显示具体差异行,仅作存在性判断。
递归比对两个目录下的所有同名文件
第一步:确保你当前位于上层目录,或使用绝对路径
第二步:执行命令
diff -rq dir1/ dir2/
-r表示递归进入子目录,-q表示只报告“有差异”而不展开内容;输出形如“Files dir1/script.sh and dir2/script.sh differ”即表示该文件内容不一致。
若只想列出哪些文件名存在但内容不同(排除文件名缺失的情况),可加--no-dereference跳过符号链接误判;【切勿省略末尾斜杠,dir1与dir1/在diff中行为完全不同】。

















