在linux下生成patch,并且打补丁的做法

6040阅读 0评论2014-08-11 guanglongxishui
分类:LINUX

原文:
http://hi.baidu.com/kangliang2008/blog/item/058afeb6c9ccb5fb31add1e3.html
 
patch是为了修改目录下的某个文件而打的。

1.[root@kll ~]# diff -Nuar Desktop/lmbench-3.0-a9.old/ Desktop/lmbench-3.0-a9>add-version-comment.patch
//注意,这里的顺序一定是diff -Nuar old-file  new-file。旧文件在前。

2.[root@kll ~]# cat add-version-comment.patch
diff -Nuar Desktop/lmbench-3.0-a9.old/src/version.h Desktop/lmbench-3.0-a9/src/version.h
--- Desktop/lmbench-3.0-a9.old/src/version.h    2010-10-28 17:04:26.000000000 +0800
+++ Desktop/lmbench-3.0-a9/src/version.h        2010-10-28 17:05:53.000000000 +0800
@@ -1,2 +1,4 @@
+//add a comment line. 2010-10-28
+//
#define        MAJOR   3
#define        MINOR   -9      /* negative is alpha, it "increases" */
[root@kll ~]#

3.[root@kll ~]# cd Desktop/lmbench-3.0-a9.old/
//进入到需要打patch的目录下。

4.[root@kll lmbench-3.0-a9.old]# patch -p2 <../../add-version-comment.patch
patching file src/version.h
//从上面的patch可以看到,我们想要修改的文件是version.h,将其前面的两层目录去掉,就是-p2。
//如果是在Desktop目录下执行的diff命令,则生成的patch文件路径就没有Desktop,变成“--- lmbench-3.0-a9.old/src/version.h”,则此时的-p2将变成-p1,为patch -p1<../../add-version-comment.patch

[root@kll lmbench-3.0-a9.old]#
 
 
 
 
 
 
 
 
 
 
 
上一篇:Linux tcpdump命令详解
下一篇:OpenWrt启动脚本分析