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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM