`

Linux Patch 制作方法 diff和patch

 
阅读更多

Linux Patch 制作方法 diff和patch

http://bbs.voip88.com/forum.php?mod=viewthread&tid=108&fromuid=7

 

 

使用diff/patch为代码打补丁 
1.diff的使用 
diff可以完成比较功能,生成补丁文件 
格式::diff [option] oldfile newfile 
常用的option选项有: 
-r 对目录进行递归处理 
-u 输出统一格式,diff有"传统"和"统一"两种格式,现在一般使用"统一"格式,比较而言,统一格式生成的文件大,但包含了更多的信息,有利于阅读与定位 
-N 补丁中包含整个新文件 
-a 补丁中包含二进制文件 
缺省时,diff向标准输出打印,所以一般都重定向到文件并以patch为后缀,也就是所谓的补丁文件 
举例: 
/* oldfile hello.c */ 
void main() 

printf("hello the world!/n"); 



/* newfile hello-new.c */ 
void main() 

printf("HELLO THE WORLD!/n"); 


使用以下命令生成补丁文件hello.patch 
$diff -u hello.c hello-new.c >hello.patch 


diff可以对整个目录进行比较,生成补丁文件 
例如有hello-1.0 和hello-1.1两个目录,其中hello-1.1为hello-1.0的更新 
命令: 
$diff -ruNa hello-1.0 hello-1.1 >hello-1.1.patch 


2.patch的使用 
把补丁运用到原代码上的命令为patch 
patch [-b] suffix <patchfile 

如果patch失败,patch会把成功的行打上补丁,失败的行存为以.rej为后缀的文件折,并生成原文件的备份,如果成功则不生成备份。 -b选项可以指定后缀名。 
注意:运行patch所在的目录应该与用diff生成补丁的时候一致。例如,上面在hello-1.0目录的上层目录生成补丁文件,patch时也应该在此目录进行。

分享到:
评论

相关推荐

    diff和patch说明

    在IT行业中,`diff`和`patch`是两个非常重要的工具,主要用于版本控制和软件更新。它们在源码管理和软件开发领域中起着至关重要的作用。`diff`用于比较两个文件或目录的差异,而`patch`则用来应用这些差异,从而更新...

    Linux下patch的制作和应用

    本文将详细介绍如何在 Linux 环境下制作和应用补丁,旨在帮助读者掌握这一实用技巧。 ## 二、基础知识简介 ### 1. diff `diff` 命令用于比较两个文件或目录之间的差异,并生成补丁文件。补丁文件记录了源文件与...

    linux下patch安装包

    - `patch-2.6.tar.gz`和`patches3.0.tgz`可能分别包含针对Linux内核2.6和3.0的补丁文件,每个`.diff`文件对应源代码的一个或多个更改。 3. **解压和应用补丁**: - 对于`patch-2.6.tar.gz`和`patches3.0.tgz`,...

    linux 打补丁patch 详解

    Linux 打补丁 Patch 是一种常用的方法来升级 Linux 内核版本。下面是关于 Linux 打补丁 Patch 的详细解释。 什么是补丁? ---------------- 补丁是一个文本文档,包含了在两个不同版本的源代码树之间的变化。补丁...

    Linux下Patch的应用和制作方法

    因为在u-boot移植过程中,有几处通用文件要修改,如果每次都要手动修改就太麻烦了。制作补丁可以解决这个问题。本文首介绍一下diff和patch。然后介绍了制作Patch为单个文件和多个文件进行补丁操作的方法。

    linux diff & patch

    Linux diff和patch是GNU Diffutils软件包的一部分,这些工具用于展示、比较和合并文件的差异。了解diff的原理和使用方式,可以帮助用户有效地管理和同步文件更改。diff命令可以比较文件之间的差异,并以多种格式输出...

    详解Linux patch命令参数及用法

    说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,如果比较的是文件夹,还要加上-r参数,所以一般直接使用Naur参数。 ...

    如何使用diff和patch

    1) 在数学上来说:diff/patch,diff是对2个集合求差,patch是求和 ... diff -uNr linux-2.6.xxx linux-2.6.xxx.1 &gt; diff.patch  升级  cp diff.patch linux-2.6.xxx/.  cd linux-2.6.xxx  patch -p1 &lt; diff.p

    Linux下Patch的应用和制作方法介绍.docx

    Linux下的Patch工具是一种用于管理软件源代码差异和更新的实用程序,主要由两部分组成:`diff`和`patch`。这两个工具可以帮助开发者快速找出源代码之间的差异,并将这些差异应用到原始代码上,以便更新或回滚代码到...

    Linux初学者Patch使用指南

    ### Linux初学者Patch使用指南详解 #### 一、Patch简介及历史背景 Patch是一种用于比较两个文件或目录之间差异,并将这些差异应用到另一个文件或目录中的工具。它最初是在网络带宽有限的时代被广泛采用的,目的是...

    linux diff命令详解

    ### Linux Diff 命令详解 #### 一、概述 `diff` 是 Linux 下一个非常实用...掌握 `diff` 的使用方法,对于日常开发工作和系统管理都是非常有用的。无论是进行代码审查还是进行版本控制,`diff` 都能提供高效的支持。

    嵌入式系统/ARM技术中的如何使用diff和patch

    1) 在数学上来说:diff/patch,diff是对2个集合求差,patch是求和 ... diff -uNr linux-2.6.xxx linux-2.6.xxx.1 &gt; diff.patch  升级  cp diff.patch linux-2.6.xxx/.  cd linux-2.6.xxx  patch -p1 &lt; diff.p

    Linux下patch打补丁命令实例详解.txt

    在Linux系统中,`patch`命令是一个非常重要的工具,用于将源代码的差异(通常由`diff`工具生成)应用到现有的源代码库上,从而实现对软件的更新或修复。本文将深入探讨`patch`命令的用法及其在实际场景中的应用实例...

    armboot-org2mini2440.diff patch补丁包

    补丁方法:将原始的armboot程序包armboot-1.1.0.tgz 解开后,将armboot-org2mini2440.diff文件放到和armboot-1.1.0的同级目录上,不要拷贝到 armboot-1.1.0 目录里面, 进到 armboot-1.1.0 执行如下的patch命令即可...

    Linux命令学习手册-patch命令

    通过以上介绍,我们可以看到`patch`命令在Linux系统中扮演着重要的角色,尤其是在软件开发过程中用于快速应用和撤销代码补丁。掌握好`patch`命令的基本用法和选项设置对于高效地管理和维护项目非常重要。同时,结合`...

    openwrt 制作patch

    该文件中包含diff和patch的相关选项。 - 配置Quilt的命令示例如下: ``` cat&gt;~/.quiltrc QUILT_DIFF_ARGS="--no-timestamps --no-index --color=auto" QUILT_REFRESH_ARGS="--no-timestamps --no-index" QUILT...

    patch安装包

    总的来说,这个"patch安装包"是为了改善WiFi驱动在Linux系统上的移植和性能,对于熟悉Linux内核开发和设备驱动编程的开发者来说,理解和使用这个工具是至关重要的。通过熟练掌握patch的应用,可以有效地提高开发效率...

    shell中常用的命令之diff和patch用法

    在Linux和Unix环境中,Shell命令是用户与操作系统交互的基础工具,其中`diff`和`patch`是两个非常实用的命令,主要用于文件和目录的比较以及应用补丁。这两个命令在软件开发、版本控制以及系统维护中起着至关重要的...

    linux patch 命令小结(收藏)

    说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,如果比较的是文件夹,还要加上-r参数,所以一般直接使用Naur参数。 ...

Global site tag (gtag.js) - Google Analytics