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

  1、准备测试文件

    [root@lihao work]$ cat test_old

    test old

    [root@lihao work]$ cat test_new

    test new

  2、使用diff创建补丁test.patch

    [root@lihao work]$ diff -uN test_old test_new > test.patch

    【注:因为单个文件,所以不需要-r选项。选项顺序没有关系,即可以是-uN,也可以是-Nu。】

    [root@lihao work]$ ls

    test_old test_new test.patch

  3、patch文件结构

    [root@lihao work]$ cat test1.patch

    --- test_old 2012-05-01 22:44:05.000000000 +0800
    +++ test_new 2012-05-01 22:35:22.000000000 +0800
    @@ -1 +1 @@
    -lihao old

    +lihao new

  说明:

    补丁头:

    补丁头是分别由---/+++开头的两行,用来表示要打补丁的文件。---开头表示旧文件,+++开头表示新文件。

    块:

    块是补丁中要修改的地方。它通常由一部分不用修改的东西开始和结束。他们只是用来表示要修改的位置。他们通常以@@开始,结束于另一个块的开始或者一个新的补丁头。

    块的缩进:块会缩进一列,而这一列是用来表示这一行是要增加还是要删除的。

    块的第一列

    +号表示这一行是要加上的。

    -号表示这一行是要删除的。

    没有加号也没有减号表示这里只是引用的而不需要修改。

 

  4、patch文件的使用

    [root@lihao work]$ patch -p0 < test.patch

    patching file test_old

    [root@lihao work]$ cat test_old

    test new

  5、恢复被patch过的文件

    [root@lihao work]$ patch -re -p0 < test.patch

    patching file test_old

    [root@lihao work]$ cat test_old

    test old

posted @ 2012-05-06 15:08  only_eVonne  阅读(7998)  评论(0编辑  收藏  举报