天天看點

Linux指令 ---- patch1 概述2 生成更新檔3 打更新檔

1 概述

更新檔主要用于更新代碼時不用重新下載下傳源碼,隻下載下傳更新檔,然後再原代碼上将這些更新檔打上就得到了更新後的代碼。

2 生成更新檔

windows 下對比檔案:

Linux指令 ---- patch1 概述2 生成更新檔3 打更新檔

生成更新檔檔案

mypatch

:

// u: Unified模式;p: 顯示代碼所在 c 函數資訊;r: 遞歸對比下面的子目錄;N: 如果檔案缺少,就當做空檔案來對比
/mnt/hgft/Linux/patch$ diff -uprN original/ modify/ > mypatch
/mnt/hgft/Linux/patch$ ls
modify  mypatch  original
/mnt/hgft/Linux/patch$ cat mypatch 
diff -uprN original/file modify/file
--- original/file	1970-01-01 08:00:00.000000000 +0800
+++ modify/file	2018-12-18 21:49:31.278448300 +0800
@@ -0,0 +1,10 @@
+A=160
+B=75
+D=80
+E=105
+F1=73
+F2=146
+G=72
+H=70
+K=70
+J=80
\ No newline at end of file
diff -uprN original/first/first.c modify/first/first.c
--- original/first/first.c	2018-12-18 21:47:42.075202200 +0800
+++ modify/first/first.c	2018-12-18 21:50:43.558582500 +0800
@@ -2,5 +2,5 @@
 
 int first(void)
 {
-	printf("it is the first function\n");
+	printf("itrst function\n");
 }
\ No newline at end of file
diff -uprN original/first/readme modify/first/readme
--- original/first/readme	2018-12-18 21:48:50.850135900 +0800
+++ modify/first/readme	1970-01-01 08:00:00.000000000 +0800
@@ -1,8 +0,0 @@
-it is the file name.
-use to test patch
-source
-diff
-patch
-rtyu
-tuya
-yunem
diff -uprN original/main.c modify/main.c
--- original/main.c	2018-12-18 21:46:35.541396700 +0800
+++ modify/main.c	2018-12-18 21:49:59.380055600 +0800
@@ -2,5 +2,5 @@
 
 int main(int argc, char **argv)
 {
-	printf("it is the main\n");
+	printf("it is thain\n");
 }
\ No newline at end of file
diff -uprN original/readme modify/readme
--- original/readme	2018-12-18 21:49:31.278448300 +0800
+++ modify/readme	2018-12-18 21:50:26.148586700 +0800
@@ -2,9 +2,7 @@ A=160
 B=75
 D=80
 E=105
-F1=73
-F2=146
-G=72
+
 H=70
 K=70
 J=80
\ No newline at end of file
           

3 打更新檔

/mnt/hgft/Linux/patch$ cd original
/mnt/hgft/Linux/patch/original$ patch -p1 < ../mypatch 	// -p1:表示忽略第1級目錄
patching file file
patching file first/first.c
patching file first/readme
patching file main.c
patching file readme
           

打更新檔之後檔案對比:

Linux指令 ---- patch1 概述2 生成更新檔3 打更新檔

繼續閱讀