1.diff在比较文件过程中结果读取方式
[num1 , num2][a/c/d][num3 , num4]
nmu1,num2表示在第一个文件中的行数
a表示添加 —add
c表示更改 —change
d表示删除 —delete
<表示第一个文件中的内容,>表示第二个文件中的内容,
—表示分隔线
num3 , num4表示在第二个文件中的行数
2,4c2,4表示改变第一个文件中的第二行和第二行和第四行才能匹配第二个文件中的第二行和第四行
实验:
-1-添加
[root@desktop ~]# vim test
[root@desktop ~]# vim test1
[root@desktop ~]# cat test
[root@desktop ~]# cat test1
[root@desktop ~]# diff test test1
输出的结果表示:当给第一个文件的第一行添加123后才能匹配第二个文件的第二行
-2-删除
将比较的文件换个位置后结果也会不同
[root@desktop ~]# diff test1 test
输出的结果表示:当将第一个文件的第二行删除之后才能匹配第二个文件中的第一行
-3-更改
[root@desktop ~]# vim test
[root@desktop ~]# cat test
[root@desktop ~]# cat test1
[root@desktop ~]# diff test test1
输出的结果表示:当将第一个文件的第二行更改成第二个文件中的第二行时才能匹配第二个文件中的第二行(反向也可)
-4-布丁的使用
patch:用于文件不同文件打布丁
patch[options]file.old file.path
<1>比较test和test1中的内容(布丁中的内容)
[root@desktop ~]# diff -u test test1
输出的结果表示:文件内容的不同:
<2>将test1中的内容放到补丁
[root@desktop ~]# diff -u test test1 > test.path
<3>安装patch的,然后将test中的内容利用patch命令进行修改,继而查看test和test1的内容是相等的
[root@desktop ~]# yum install patch -y
[root@desktop ~]# patch test test.path
[root@desktop ~]# cat test
[root@desktop ~]# cat test1
2.diff在比较目录过程中结果的读取
Only in directory/:filename
directory表示在哪个目录中
filename表示在哪个目录
<1>单纯的diff目录westos和目录westos1,发现没有报错
[root@desktop ~]# cd /mnt
[root@desktop mnt]# mkdir westos
[root@desktop mnt]# mkdir westos1
[root@desktop mnt]# diff -r westos westos1
<2>在westos目录下新建一个file,再次diff时,会发现报错only in westos1:file
[root@desktop mnt]# touch westos1/file
[root@desktop mnt]# diff -r westos westos1
3.diff中常用的参数
-b或–ignore-space-change不检查空格字符的不同
-B或–ignore-blank-lines不检查空白处
-c 显示全部内容,并标出不同之处
-i或–Ignore-case不检查大小写的不同
-p:若比较的文件为c语言的程序码文件时,显示差异所在的函数名称
-q或–brief:仅显示有无差异,不显示详细的信息
—r或–recursive:比较子目录中的文件
实验:
<1>diff -b的用法
[root@desktop mnt]# vim test
[root@desktop mnt]# vim test1
[root@desktop mnt]# diff test test1
[root@desktop mnt]# diff -b test test1
因为两个文件内中的内容中有空格字符不同,所以使用-b参数时不会报错
<2>diff -B的用法
[root@desktop mnt]# vim test
[root@desktop mnt]# vim test1
[root@desktop mnt]# cat test
[root@desktop mnt]# cat test1
[root@desktop mnt]# diff test test1
[root@desktop mnt]# diff -B test test1
因为两个文件内中的内容的空白处不同,所以使用-B参数时不会报错
<5>diff-c1/c2/c3/c的用法
前提工作(在两个文件内写入不同的内容):
[root@desktop mnt]# vim test
[root@d