打补丁patch 命令使用

http://www.cnblogs.com/huanghuang/archive/2011/07/14/2106402.html

patch 命令用于打补丁,补丁文件是使用diff产生的
patch 命令语法

patch [ -b [ -B Prefix ] ] [ -f ] [ -l ] [ -N ] [ -R ] [ -s ] [ -v ] [ -c | -e | -n ] [ -d Directory ] [ -D Define ] [ -F Number ] [ -i PatchFile ] [ -o OutFile ] [ -p Number ] [  -r RejectFile ] [ -x Number ] [ File ]

patch 命令失败或拒绝接受补丁时,会产生一个和原文件同名,以".rej"为后缀的差异文件。    
使用 -b 时,会产生一个和原文件同名,以".orig"为后缀的备份文件。

常使用的 patch 参数:
-p: 指定目录级别(从路径全称中除去几层目录)如,如果补丁文件包含路径名称 /curds/whey/src/blurfl/blurfl.c
那么:-p 0 使用完整路径名 -p 1 除去前导斜杠,留下 curds/whey/src/blurfl/blurfl.c。 -p 4 除去前导斜杠和前三个目录,留下 blurfl/blurfl.c。

-d :Directory 打补丁前,更改当前目录到指定目录
-i :PatchFile 指定补丁文件,而不是从标准输入中读取补丁信息
-R :逆向补丁,这个选项在防止打错补丁很有用处

补丁的产生一般用 diff命令比较a文件和b文件

diff -Nrua a b > c.patch

如:

diff -Nrua linux-2.6.14/Makefile linux-2.6.26/Makefile >c.patch
cat c.patch

--- linux-2.6.14/Makefile 2008-07-30 16:54:20.000000000 +0800 +++ linux-2.6.26/Makefile 2008-07-14 05:51:29.000000000 +0800 @@ -1,8 +1,8 @@ VERSION = 2 PATCHLEVEL = 6 -SUBLEVEL = 14 +SUBLEVEL = 26 EXTRAVERSION = -NAME=Affluent Albatross +NAME = Rotary Wombat # *DOCUMENTATION* # To see a list of typical targets execute "make help"

--- 的文件表示将被打补丁的文件 如:linux-2.6.14/Makefile +++ 的文件表示补丁来源文件   如:linux-2.6.26/Makefile

应用

ls c.patch linux-2.6.14 linux-2.6.26
cd linux-2.6.14
patch -p1 <../c.patch

如果有多个补丁要打,则应该注意打补丁的顺序!

摘自:http://blog.ednchina.com/mcu_study/146725/message.aspx

时间: 2024-12-22 17:50:32

打补丁patch 命令使用的相关文章

diff patch 命令制作补丁

diff 命令 diff可以比较两个文件,并可同时记录下二者的区别.制作补丁时的一般用法和常见选项为: diff [选项] 源文件(夹) 目的文件(夹) -r:递归,设置后diff会将两个不同版本源代码目录中的所有对应文件都进行一次比较,包括子目录文件: -N:确保补丁文件将正确地处理已经创建或删除文件的情况: -u:一体化diff输出(参见例1) -E, -b, -w, -B, –strip-trailing-cr 忽略各种空白,可参见文档,按需选用. 例1,有如下两个差异文件: # vers

【转】patch命令

原文网址:http://bbs.chinaunix.net/thread-1945698-1-1.html patch给文件1应用补丁文件变成另外一个文件2(需要先用"diff 文件1 文件2"生成补丁文件).语法patch [选项] [原始文件 [补丁文件]] 描述: patch 命令读取如何更改文件的源文件指示信息,然后应用这些更改.源文件包含由 diff 命令产生的差别列表(或者 diff 列表).差异列表是比较两个文件和构建关于如何纠正差别的指示信息的结果.缺省情况下,patc

diff命令和patch命令

Linux就这个范儿 2.9.5 文件对比命令——diff diff命令搭建网站离不开数据库,在Linux系统上我们使用源码安装了MySQL服务器.不久我们发现 Google发布了一系列MySQL补丁,这些补丁很好很强大,这时候我们迫不及待地要把新东西更新到系统上,那就用patch命令来打补丁吧.喝水不忘打井人,那补丁又是怎么做的呢?这个任务就需要文件对比命令diff来帮忙了.diff用来比较两个文本文件的差异,是代码版本管理的基石之一.diff采用动态规划算法实现差异比较,此算法的基础是最长公

&lt;转载&gt; diff 和 patch 命令

本文转载自:http://blog.chinaunix.net/uid-23390992-id-3312321.html diff与patch命令 diff与patch命令真可谓是天作之合,命令中的黄金搭档.老师讲了之后其实自己不是很懂,因为上课的时候没有好好听,上课走神了.怎么办呢,肯定不能放着不管了,而这两个命令确实很重要,所以只能厚着脸皮课后死啃资料自己学习咯,学了之后才有开头第一句的感慨. diff和patch是一对工具,数学上说,diff是对两个集合的差运算,patch是对两个集合的和

git制作补丁Patch和应用补丁Patch

1 先找到指定的提交id,比如 cc451ef67a301003bbaf5bf616e08f1a3221268e 2 到git代码目录中,敲命令制作Patch git format-patch cc451ef67a301003bbaf5bf616e08f1a3221268e 3 命令执行完成后,在当前目录生成若干个.patch的文件 把生成的.patch文件打包上传到服务器上并解压出来(步骤省略) 4 在服务器上应用补丁Patch 清除之前的错误信息 git am --abort 应用补丁 gi

grep,cut,wc,sort,diff,uniq,patch命令

文本处理工具: Linux上文本处理三剑客: grep,egrep,fgrep: 文本过滤工具(模式: pattern)工具; grep:基本正则表达式,-E,-F egrep:扩展正则表达式,-G,-F fgrep:不支持正则表达式, sed: stream editor,流编辑器;文本编辑工具; awk: Linux上实现为gawk,文本报告生成器(格式化文本); 正则表达式:regual expression , regexp 由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面

补丁(patch)文件

补丁(patch): 本质上是文件之间的一系列差异,这些差异能够被diff程序应用在源代码树上.通常用来修复源代码的一些漏洞,从而修复产品版本的缺陷. 补丁分为两种:热补丁 和 冷补丁 两种方式最大的区别是对业务的影响大小,冷补丁需要复位,热补丁不需要. 系统在内存中开辟了补丁区,热补丁是通过INS PATCH复合命令被直接放到补丁区,被激活运行,不需要复位. 虽然热补丁方便,但是当热补丁无法解决遇到的问题时(如不是简单的改写函数就可以的,需要改写全局变量,内存中的代码段也重新改换,代码重新汇编

Linux中的版本控制---diff和patch命令

一.构造两个用于测试的文件 hello.txt: world.txt: 二.用diff命令比较两个文本文件的差异 对这个两个文本文件执行diff‘命令,并通过输出重定向,将差异保存在diff.txt文件中 $ diff -u hello.txt world.txt > diff.txt 参数-u是使得差异输出中带有上下文 第1,2行中的三个减号标识原始文件,三个加号标识目标文件: 第3行表示在这个差异小节中,是从原始文件的第1行开始之后的3行,目标文件从第1行到第3行: 从第4行开始的减号表示只

批量安装XP补丁的命令

方法一: 新建一个bat文件,把这个文件和所有补丁文件放在同一个目录下,双击运行. BAT代码如下 @echo offfor %%i in (*.exe) do %%i /passive /norestart /nobackupshutdown -r 安装参数说明: /quiet        无用户操作或显示/passive       无人参与模式/norestart 安装后不重启/nobackup       不备份卸载需要的文件 方法二: "开始"--"运行"