Linux操作系统 patch 命令

patch 命令被用来把更改应用到文本文件中。它接受从 diff 程序的输出,并且通常被用来把较老的文件版本转变为较新的文件版本。让我们看看一个著名的例子:Linux 内核是由一个大型的,组织松散的贡献者团队开发而成,这些贡献者会提交固定的少量更改到源码包中。这个 Linux 内核由几百万行代码组成,虽然每个贡献者每次所做的修改相当少。对于一个贡献者来说,每做一个修改就给每个开发者发送整个的内核源码树,这是没有任何意义的。这时我们可以提交一个 diff 文件。一个 diff 文件包含先前的内核版本与带有贡献者修改的新版本之间的差异。然后一个接受者使用 patch 程序,把这些更改应用到他自己的源码树中。使用 diff/patch 组合提供了两个重大优点:

与整个源码树的大小相比较而言,一个 diff 文件非常小。
一个 diff 文件简洁地显示了所做的修改,从而允许程序补丁的审阅者能快速地评估它。
当然,diff/patch 能工作于任何文本文件,不仅仅是源码文件。它同样适用于配置文件或任意其它文本。

准备一个 diff 文件供 patch 命令使用,GNU 文档建议这样使用 diff 命令:

diff -Naur old_file new_file > diff_file

old file 和 new file 部分不是单个文件就是包含文件的目录。这个 r 选项支持递归目录树。

命令格式

patch [选项] 补丁文件

常用参数

参数 描述
-p num 忽略几层文件夹
-E 如果发现了空文件,那么就删除它
-R 取消打过的补丁

例一:生成file1.txt和file2.txt的 diff 文件,然后应用 patch 命令更新file1.txt文件,可以使用如下命令:
diff -Naur file1.txt file2.txt > patchdiff.txt
patch < patchdiff.txt

例二:取消上面例一打过的补丁,可以使用如下命令:
patch -R < patchdiff.txt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值