diff命令:生成补丁包文件
格式: diff –Nuar 旧版本文件 新版本文件 > 补丁包文件名.patch
patch命令:打补丁命令
格式:patch –选项 <补丁包文件
例如:假设有version1.c(低版本)和version2.c(高版本)两个文件。可以使用“diff version1.c version2.c >test.patc”命令,生成补丁包“test.patch”
diff –Nuar version1.c version2.c > test.patch
利用cat查看补丁包文件内容会看到首行有旧版本、新版本文件目录,接着就是“-”或“<” 或“>” 或“+”跟着要修改的内容。
“<”/“-” :后面跟着要删除的内容。
“>”/“+” :后面跟着要增加的内容。
打补丁命令
-正向补丁 :patch –p0 < test.patch
-反向补丁 :patch –Rp0 < test.patch
(其中p代表剥离层级,0指略去patch文件0层目录,即从补丁包文件首行目录的根目录开始略去0层目录)
例如下:
1、建立目录x/xx/xxx
2、在xxx目录下新建文件test_old.c、test_new.c 文件内容如下:
3、然后在xx目录用diff命令生成补丁包文件xx.patch
4、我们用cat命令查看补丁包文件首两行内容如下:
我们把补丁包xx.patch文件移动到xxx目录下,当我们在xxx目录下用xx.patch应用补丁包文件打补丁时,因为补丁包文件首两行目录的根目录都是xxx,打补丁的时候如果不用剥离层级参数,查找补丁时便会从当前目录查找xxx目录,因为当前目录就是xxx目录了,所以我们需要使用p1参数才能正常完成打补丁,这样做的目的就是忽略xxx目录,即忽略上图中红色框的最左边一层目录。
5、运行命令:patch -p1 < xx.patch 回车,完成打补丁。
来源:CSDN
作者:qq_41278362
链接:https://blog.csdn.net/qq_41278362/article/details/104572902