diff命令和patch命令,生成补丁和打补丁

diff命令生成补丁时指令为

命令:diff -Naur  路径1/file_old文件   路径2/file_new文件 > xxx.patch文件

最后需要用‘>’来输出重定向,生成一个补丁文件,打开补丁文件可以发现里面的改动.


-r如果是文件夹将递归的比较子文件,如果是单个文件可以不要这个参数.

-N:确保补丁文件能够正确处理已经创建或者删除的文件.

    如果某个文件缺少了, 就当作是空文件来对比. 如果不使用本选项, 当diff发现旧代码或者新代码缺少文件时, 只简单的提示缺少文       件.    如果使用本选项, 会将新添加的文件全新打印出来作为新增的部分.

-u以统一格式创建补丁文件

-a输出为txt文件

所生成patch包在当前文件夹下。


patch命令打补丁时指令为

命令: patch -p1 < xxx.patch

最后要使用'<'输入重定向来把补丁文件导入需要打补丁的文件.

生成的补丁中, 路径信息包含了你的Linux源码根目录的名称, 但其他人的源码根目录可能是其它名字, 所以, 打补丁时, 要进入你的Linux源码根目录, 并且告诉patch工具, 请忽略补丁中的路径的第一级目录(参数-p1).

例如:给修改过的内核生成patch,然后用生成的patch给未修改过的内核打补丁

其中,目录linux-2.6.31.3为未修改过的内核,目录linux-2.6.31.3_1为修改过的内核

$ diff -uparN linux-2.6.31.3 linux-2.6.31.3_1/ > mypatch

$ cd linux-2.6.31.3

$ patch -p1 < mypatch


patch命令倒退回原版本的指令为

命令:patch -Rp1 < xxx.patch 

执行它也是在打完xxx.patch的补丁的文件的基础上执行.

也如上文打补丁时一样,需要进入文件夹下卸载补丁.

当只有一个文件,不存在文件夹时,参数用-p0.


如果有两个目录

---old/huang/test.1

++new/huang/test.2

 -p0:则从当前目录开始查找old文件夹,在去递归找test.1

-p1:也即忽略第一个目录,直接在当前目录下找找huang这个目录在去递归test.1,再用test.2对tes.1的patch文件去给test.1打补丁.


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值