shell常用命令—diff和patch

shell常用命令—diff和patch

1. diff用法

diff file1 fil2

以后面的文件file2作为标准
比较file1相对于file2来说有什么不同

< 表示第一个文件中的内容
> 表示第二个文件中的内容
a表示添加–add
c表示更改–change
d表示删除–delete

[root@node2 diff-patch]# cat file1
123
haha
[root@node2 diff-patch]# cat file2
123
nihao
[root@node2 diff-patch]# diff file1 file2
2c2			#第一个文件的第二行要经过更改变成第二个文件的第二行
< haha		#第一个文件中的haha
---
> nihao	    #改成第二个文件中的nihao
[root@node2 diff-patch]# diff file2 file1
2c2
< nihao
---
> haha

在这里插入图片描述

[root@node2 diff-patch]# cat file1
123
[root@node2 diff-patch]# cat file2
123
nihao
[root@node2 diff-patch]# diff file1 file2
1a2			
> nihao	  
[root@node2 diff-patch]# diff file2 file1
2d1
< nihao

在这里插入图片描述

2. diff比较目录

diff -r /etc/ /tmp/

注意:比较的结果是目录中文件的不同,而不是文件内容的不同

3. patch用法

patch常用来打补丁

以第二个文件为标准,对第一个文件打补丁

diff -u file2 file1
ls
diff -u file2 file1 > file2.path	#首先需要生成补丁文件
ls
cat file1
cat file2
cat file2.path

在这里插入图片描述
在这里插入图片描述

patch file2 file2.path 
yum install patch.x86_64 -y
patch file2 file2.path 		#再用patch命令打补丁
cat file2
cat file1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:用这种方法打补丁 文件会直接被修改成指定文件内容 原文件内容会被覆盖

要留下原文件内容:

cat file1
cat file3
diff -u file1 file3 >file1.path
ls
patch -b file3 file3.path	#-b表示保留原文件内容
ls
cat file1
cat file3
cat file1.orig 				#原文件内容

在这里插入图片描述

在这里插入图片描述

发布了145 篇原创文章 · 获赞 17 · 访问量 8670

猜你喜欢

转载自blog.csdn.net/weixin_45775963/article/details/104358777