diff命令
描述
用来比较两个文件或目录的不同。diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
语法格式
diff [options] target1 target2
diff file1 file2
diff direcory1 directory2
- 常用参数
参数 | 用法 |
---|---|
-b或–ignore-space-change | 不检查空格字符的不同 |
-B或–ignore-blank-lines | 不检查空白行 |
-c | 显示全部内文,并标出不同之处 |
-i或–ignore-case | 不检查大小写的不同 |
-p | 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称 |
-q或–brief | 仅显示有无差异,不显示详细的信息 |
-r或–recursive | 比较子目录中的文件 |
-u | 以合并的方式来显示文件内容的不同 |
显示结果解析
- 编辑两个文件如下
[root@test shell]# cat file1
server1
hello
xixi
redhat
[root@test shell]# cat file2
server2
world
xixi
centos
- diff 比较
[root@test shell]# diff file1 file2
1,2c1,2
< server1
< hello
---
> server2
> world
4c4
< redhat
---
> centos
- 结果分析
1,2c1,2:表示改变第一个文件(file1)中的第一行和第二行才能匹配第二个文件(file2)中的第一行和第二行
4c4 :表示改变第一个文件(file1)中的第四行才能匹配第二个文件(file2)中的第四行
< :表示第一个文件(file1)中的内容
> :表示第二个文件(file2)中的内容
--- : 表示分割线
- 扩充分析
##形如此式
num1,num2 [a|c|d] num3,num4
##含义如下
num1,num2 表示在第一个文件中的行数
num3,num4 表示在第二个文件中的行数
a 表示添加(add)
c 表示更改(change)
d 表示删除(delete)
< 表示第一个文件中的内容
> 表示第二个文件中的内容
--- 分割线