1、diff命令是比较两个文件,然后给出如何修改源文件成为目标文件
1.1 命令是:diff [-options] 源文件 目标文件 > 比较结果
举例说明:
创建文本:a.txt
文本内容:
aa
bb
cc
创建文本:b.txt
文本内容:
aa
11
bb
cc
进行比较:diff -Naru a.txt b.txt > test.patch # [-Naru] 是参数 N比较目录,a按行比较,r迭代目录,u生成紧凑比较结果
查看比较结果:
$ cat test.patch
--- a.txt 2018-10-31 00:52:17.794145000 +0800
+++ b.txt 2018-10-31 00:53:16.864278100 +0800
@@ -1,3 +1,4 @@
aa
+11
bb
cc
简单解释:第一个文件的第一行需要添加11 才能和第二文件的相同
下面用patch命令使用这个test.patch补丁。
2、使用patch命令用补丁修改源文件
patch格式:patch [-option] [源文件] < 补丁文件
举例说明:
现在把第一个文件a.txt改变为和第二文件b.txt内容一样
在当前目录中: patch -p0 <test.patch 或者 patch <test.patch
$ patch <test.patch
patching file a.txt
$ cat a.txt
aa
11
bb
cc
#[-p0]是根据在当前目录,使用patch中的目录路径去寻找目标文件,也就是上面test.patch中的---a.txt的路径,路径可能是---/a/b/c/a.txt这样,如何当前在目录a中,patch -p1 < 补丁,如果在b中,使用-p2,同理。就是根据patch的路径找源文件。