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