• patch:通过补丁文件,来对原文件打补丁

  • diff:      比较两个文件,然后生成一个补丁文件


1.patch用法  

 patch -p[剥离层级]  <[补丁文件]

2.patch命令示例

cd u-boot-1.1.6/  //进入原文件目录      patch -p1  <../u-boot-1.1.6_jz2440.patach   //"p"    表示去掉补丁文件里路径的第几部分。"1",表示去掉第1个//"<"    指补丁文件位置// "../" 表示返回上一个目录,因为这补丁文件和原文件在同一目录下

为什么需要输入-p1?

如下图所示,可以看到补丁文件里,每个需要改的文件,都有u-boot-1.1.6目录,而我们之前已经cd进入了,所以需要输入-p1,去掉它

3.patch文件内容补充

diff -urN u-boot-1.1.6/common/cmd_bootm.c u-boot-1.1.6_jz2440/common/cmd_bootm.c//绿色代表原文件名以及文件地址,红色代表打上补丁后的新文件名以及地址--- u-boot-1.1.6/common/cmd_bootm.c    2006-11-02 22:15:01.000000000 +0800+++ u-boot-1.1.6_jz2440/common/cmd_bootm.c    2010-11-26 12:54:38.150155640 +0800//--- 对文件里代码删减     +++ 对文件里代码添加@@ -318,5 +318,5 @@                         //-318,5 表示在原文件里第318行内有删减,接下来显示5段。+318,5同样类似                                                   //第318行,第一段    switch (hdr->ih_comp) {                        //第319行,第二段     case IH_COMP_NONE:                            //第320行,第三段-        if(ntohl(hdr->ih_load) == addr) {         //第321行,删减第四段+        if(ntohl(hdr->ih_load) == data) {         //第322行,增加第五段

4.diff常用参数  

  • -u: 表示在比较结果中输出上下文中一些相同的行,这有利于人工定位

  • -r:  表示递归比较各个子目录下的文件

  • -N“:将不存在的文件当作空文件

  • -B: 忽略对空行的比较

5.diff命令示例

 diff -urN   u-boot-2012.04.01   u-boot-2012.04.01_new > u-boot-2012.04.01_new.patch              //u-boot-2012.04.01:原文件              //u-boot-2012.04.01_new:修改后的新文件

当一个文件有多个补丁需要打,则使用for循环批处理命令

比如,在tmp/目录下打上../patches/目录下的所有补丁文件:

cd tmp/for file in ../patches/*.patch; do patch -p1 < $file; done

原文:https://www.cnblogs.com/lifexy/p/7009706.html

转载于:https://blog.51cto.com/linuxcgi/2313389

学习patch命令打补丁,diff命令制作补丁相关推荐

  1. diff (制作补丁)和 patch(添加补丁) 的简介及简单使用

    diff是Linux系统的一个很重要的工具程序,我们通常用diff对同一软件(或程序)的不同版本的文件进行对比查看.不过,你不要用diff去比较两个完全不相干的文件,因为那样是比不出结果来的. dif ...

  2. linux下比较文件并输出,Linux使用diff命令比较文件找出文件之间相同的部分

    如果你需要比较系统文件的内容,那么你就会是使用到diff命令,可找出文件之间相同的部分,下面小编就给大家详细介绍下Linux diff命令的用法. diff 命令是 linux上非常重要的工具,用于比 ...

  3. 每天一个linux命令(36):diff 命令

    diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的 ...

  4. linux下比较文件并输出,Linux使用diff命令比较文件的方法

    如果你需要比较系统文件的内容,那么你就会是使用到diff命令,可找出文件之间相同的部分,下面小编就给大家详细介绍下Linux diff命令的用法. diff 命令是 linux上非常重要的工具,用于比 ...

  5. 每天一个linux命令(28):diff 命令

    diff 命 令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版 本的diff还支持二进制文件.diff程 ...

  6. Linux: 举例说明Linux diff 命令

    在比较文件的时候,通常会用基于GUI的软件.很少有人真正会为了这个目的使用命 令行工具.虽然说使用命令行来比较文件/目录并不像一件小事儿那样容易,但是如果你是一个Linux使用者,那么我想你应该知道如 ...

  7. linux命令diff实例,举例说明Linux diff 命令

    在比较文件的时候,通常会用基于GUI的软件.很少有人真正会为了这个目的使用命令行工具.虽然说使用命令行来比较文件/目录并不像一件小事儿那样容易,但是如果你是一个Linux使用者,那么我想你应该知道如何 ...

  8. diff命令输出格式解读

    diff命令输出格式解读 1. diff命令的用法 diff命令可以比较两个文件(或者文件夹)的差异. 命令的用法是: diff [选项] 改动前的文件(夹) 改动后的文件(夹) 如果是文件夹的比较, ...

  9. Linux命令之diff命令

    一.命令简介   Linux diff命令用于比较文件的差异.diff以逐行的方式,比较文本文件的异同处.如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录.diff的输 ...

最新文章

  1. c语言程序设计入门导论,程序设计入门——C语言
  2. Java私有变量是否可继承
  3. 强化学习:Policy-based方法Part2
  4. 前端面试系列-ES6
  5. 定制CentOS 6.3 自动安装盘
  6. 【专栏原创]】忘掉一切,从用户场景出发——我在需求上犯过的错
  7. QMouseEvent 的坐标__Win
  8. python scatter 简书_写给 Pythonist 的 Spacemacs 入门指北
  9. 二叉树:通过前序遍历与中序遍历序列输出二叉树的后序遍历序列
  10. [转]Java计时器Timer 使用
  11. ENVI Classic 二次开发简介
  12. H3C交换机配置VLAN
  13. 正则表达式实现中文的大写字符
  14. Visual SourceSafe 2005 简体中文语言包
  15. 《Unity资源加密》(Yanlz+Unity+XR+资源加密+立钻哥哥+==)
  16. 示波器测量的波形一直抖动怎么办
  17. gitlab .gitlab-ci.yml 文件赏析
  18. 在场景中增加固定自定义栏
  19. mysql负载突然飙升_hugepages使用出现kswapd导致系统负载突然上升
  20. 三星平板 N8000刷机升级安卓版本到7.1过程记录

热门文章

  1. Http Body 的四种格式
  2. 图论算法 最短路程_图论与图学习(二):图算法
  3. java 缓存方法_Java实现一个简单的缓存方法
  4. android获取电池是否充电,Android 判断电池是否为充电状态的方法
  5. mysql int 转 varchar_Java后端程序员必备:MySQL索引失效的十大杂症
  6. bootstrap列高度_如何使Bootstrap列都具有相同的高度?
  7. linux安装redis清除错误,关于linux redis安装及安装遇到的问题
  8. mysql8.0 安装_MySQL8.0安装步骤
  9. TCP如何实现可靠性传输
  10. html5的video怎么把里面的控制器移出来_6个月宝宝米粉怎么冲,一次吃多少?一天吃几次?关于宝宝米粉的难题,答案都在这了!...