diff 命令是 linux 下最常用、最可靠的文本文件对比工具,以行为单位逐行比对,支持 -u(统一格式)、-w(忽略空格)、-i(不区分大小写)、-b(忽略空白行)等选项,并可结合 colordiff、vimdiff 或排序后对比等进阶用法。

直接用 diff 命令就能快速对比两个文本文件的内容差异,这是 Linux 下最常用、最可靠的方式。它默认以行为单位逐行比对,输出清晰的修改、新增或删除标记,适合配置检查、代码审查、日志分析等场景。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
基础对比:快速看出是否相同
执行:diff file1.txt file2.txt
- 如果**无任何输出** → 两文件内容完全一致;
- 如果有输出 → 显示差异位置和类型,例如:
2c2<br> ---<br> > there
表示第 2 行被修改(c = change),file1 中是 world,file2 中是 there。
推荐加 -u:统一格式,上下文更清楚
带上下文的输出更容易理解改动背景:diff -u file1.txt file2.txt
- 输出包含前后各 3 行上下文(可调,如 -U5 显示 5 行);
- 标记规范:
--- 开头是源文件信息,+++ 是目标文件;
- 行代表被删内容,+ 行代表新增内容;
- 这种格式也兼容 patch 工具,方便后续打补丁。
忽略常见干扰项
很多“看似不同”其实只是格式问题,可用选项跳过:
- diff -w file1.txt file2.txt → 忽略所有空格、制表符差异;
- diff -i file1.txt file2.txt → 不区分大小写(比如 “Name” 和 “name” 视为相同);
- diff -B file1.txt file2.txt → 忽略空白行(空行增删不报);
- 组合使用更实用:diff -uwB file1.txt file2.txt。
进阶选择:按需换工具
如果默认 diff 不够直观,可选这些增强方式:
- 带颜色高亮:安装 colordiff(sudo apt install colordiff),然后运行 colordiff -u file1.txt file2.txt;
- 交互式编辑对比:用 vimdiff file1.txt file2.txt,左右分屏+高亮差异,支持直接修改并同步;
- 忽略行顺序:若只关心内容集合是否一致(不关心排列),先排序再比:diff ;<br>
- <strong>仅判断是否不同</strong>:加 <code>-q 选项,适合脚本判断:diff -q file1.txt file2.txt && echo "same" || echo "different"。










