一、diff命令基本介绍
- linux环境下的比较工具 diff
- diff命令是以逐行的方式,比较文本文件的异同处。
- 如果指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作
可以通过diff --help查询基本的语法
diff [OPTION]... FILES
二、diff操作
命令 | 说明 |
diff file1 file2 --normal | 默认模式,normal模式 |
diff file1 file2 -c | context比较模式 |
diff file1 file2 -u | unified比较模式 |
diff的三种格式
- 正常格式(normal diff),默认格式
- 上下文格式(context diff)
- 合并格式(unified diff)
2.1 normal格式
比较2个文件
首先在windows下用BeyondCompare比较2个文件
用diff比较2个文件
diff file1 file2
或
diff file1 file2 --normal
字符 | 说明 |
3c3 | file1第3行添加内容后和file2相同 |
< | file1第三行位空行 |
> aa | file2第三行为aa |
7c7 | file1第7行添加内容后和file2相同 |
< | file1第7行为空行 |
> bb | file2第7行为bb |
2.2 context格式
- 默认情况下的模式输出结果实际上是符合计算机的思维方式,不太直观,所以其输出结果并不能够很好的被人理解,diff命令除了默认模式之外还提供了另外两种模式,Context和Unified模式,本节我们说说如何查阅Context模式下的输出结果
- 首先在windows下用BeyondCompare比较2个文件
- 用diff context格式比较2个文件
diff file1 file2 -c | --context
2.3 unified格式
- diff还有一种比较方式,也即Unified模式,使用命令行 –u 来执行该模式的比较。其比较结果与Context模式很像,但是简化了一些输出,我们看看我们的案例文件,与上面的一样
- 首先在windows下用BeyondCompare比较2个文件
- 用diff unified格式比较2个文件
diff file1 file2 -u |--unified
2.4 diff目录
- 两个目录比较如果存在同名的文件,则比较这两个文件的不同
- 两个目录存在的不同名文件,不比较
- 两个目录的文件分布如下:
diff 目录1 目录2