diff、patch命令浅析


1、diff 命令

  • diff 命令常用来比较文件、目录,也可以用来制作补丁文件。顾名思义,“补丁文件” 就是 “修改后的文件” 与 “原文件” 的差异。常用选项如下:

    1 、“-u”:表示在比较结果中输出上下文的一些相同的行,这有利于人工定位;
    2、“-r”:表示递归比较各个子目录下的文件;
    3、“-N”:将不存在的文件当做空文件;
    4、“-w”:忽略对空格的比较;
    5、“-B”:忽略对空行的比较。

  • 举例说明:
    假设 linux-3.10.y 目录是原始的内核,linux-3.10.y_modify 目录是修改过的内核,可以使用以下命令制作补丁文件 linux-3.10.y_modify.diff(原始目录在前,修改过的目录在后):

    $ diff -urNwB linux-3.10.y linux-3.10.y_modify > linux-3.10.y_modify.diff
    

2、patch 命令

  • patch 命令是用来打补丁的——即依据补丁文件来修改原始文件。比如上边的例子,可以使用以下命令将补丁文件 linux-3.10.y_modify.diff 应用到原始目录 linux-3.10.y。将 linux-3.10.y_modify.diff 和 linux-3.10.y 放在同一个目录下:

    $ cd linux-3.10.y
    $ patch -p1 < ../linux-3.10.y_modify.diff 
    
  • patch 命令中最重要的选项是 “-pn”:补丁指明了要修改的文件路径,“-pn”表示忽略路径中第 n 个斜线之前的目录。假设 linux-3.10.y_modify.diff 中有如下的几行:

    diff -urNwB linux-3.10.y linux-3.10.y/A/B/C.h linux-3.10.y_modify/A/B/C.h
    — linux-3.10.y/A/B/C.h 2022-07-19 11:10:01.000000000 +0800
    +++ linux-3.10.y/A/B/C.h 2022-07-11 15:23:05.000000000 +0800
    … …

  • 使用上述命令打补丁时,patch 命令根据 “linux-3.10.y/A/B/C.h” 寻找源文件,“-p1” 表示忽略第一个斜线之前的目录,所以需要修改的源文件目录下的:A/B/C.h。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积步千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值