patch命令和diff命令

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 回车,完成打补丁。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值