Linux下打补丁patch 和 diff 命令的使用

Q:为什么要找不同,为什么要打补丁?

A:

  在Linux应用中,作为DBA,我们知道MySQL跑在Linux系统之上,数据库最重要的追求就是性能,“稳”是重中之重,所以不能动不动就是换系统或是换这换那的,这个时候除非是万不得已,要不然都是在原有基础上改改就行了,也就是给内核及下载的一些源码打补丁或者说是升级,那么在Linux下使用diff制作补丁以及如何使用patch打补丁显得尤为重要。

一、找不同:diff命令(differences)

  -- compare files line by line

  一行一行的比较文本文件

作用:

  比较两个文件之间的差异,输出结果为两个文件的不同之处。

  使用diff命令制作补丁。

格式:

diff  [OPTION]...  FILES

选项:

  -u:会将不同的地方放在一起,紧凑易读

    diff -u linuxidc.com1 test2 > test.patch   (利用diff命令生成补丁patch)

  -r:递归比较目录下的所有文件(比较文件夹时候一定要接-r)

1、diff命令:找不同

shell> cp fruit.txt shuiguo.txt shell> diff fruit.txt shuiguo.txt   //因为是复制的文件,所以文件内容没有差异,也就没有输出结果 shell> echo "banana" >>fruit.txt shell> diff fruit.txt shuiguo.txt 9d8 < banana   //diff命令后面,第一个文件有9行,第二个文件有8行,<表示右边文件内容缺失 shell> echo "cherry" >>shuiguo.txt shell> diff fruit.txt shuiguo.txt 9c9 < banana --- > cherry   //diff命令后面,两个文件都是9行,<右边文件缺失banana,>左边文件缺失cherry

2、diff命令:制作补丁文件

shell> cat ni.txt jinan changqing linux chinaitsoft shell> cp ni.txt wo.txt shell> diff ni.txt wo.txt shell> diff -u ni.txt wo.txt   //copy文件没有内容差异
shell
> echo "zhangjiacai" >>wo.txt shell> diff -u ni.txt wo.txt --- ni.txt 2016-11-02 16:11:35.253976996 +0800 +++ wo.txt 2016-11-02 16:13:50.037971397 +0800 @@ -2,3 +2,4 @@ changqing linux chinaitsoft +zhangjiacai shell> vim ni.txt shell> cat ni.txt jinan linux chinaitsoft shell> diff -u ni.txt wo.txt --- ni.txt 2016-11-02 16:16:32.930978061 +0800 +++ wo.txt 2016-11-02 16:13:50.037971397 +0800 @@ -1,3 +1,5 @@ jinan +changqing linux chinaitsoft +zhangjiacai

解析:

  @@ 代表一段范围

  - 代表ni.txt

  + 代表wo.txt

 使用 > 输出重定向生成补丁文件ni-to-wo.patch

shell> diff -u ni.txt wo.txt > ni-to-wo.patch shell> cat ni-to-wo.patch --- ni.txt 2016-11-02 16:16:32.930978061 +0800 +++ wo.txt 2016-11-02 16:13:50.037971397 +0800 @@ -1,3 +1,5 @@ jinan +changqing linux chinaitsoft +zhangjiacai

如此,我们就做好了一个补丁文件。 

二、打补丁:patch命令

  --- apply a diff file to an original.

用途:

  用来打补丁---修补文件

格式:

patch  [选项]  原始文件 < 补丁文件

  -pN:N表示忽略N层路径

  -R: 还原到老版本

注意事项:

  ①如果打多个补丁,注意先后顺序;

  ②打补丁前不要修改源文件;

1、文件和文件的比较

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13779.html