patch即补丁之意,记录文件中的不一样,可以与文件进行整合,从而改变文件中的内容html
在Linux系统中提供了diff程序,能够使用diff程序,比较文件之间的不一样从而制做出patch文件学习
mkdir diff vi test1.txt vi test2.txt
test1.txt文件内容以下spa
aaaa
test2.txt文件内容以下.net
aaaa
bbbb
diff -Naur test1.txt test2.txt > test.patch
以后在当前目录中会存在三个文件code
test1.txt test2.txt test.patch
test.patch 文件的内容htm
--- test1.txt 2018-08-01 13:17:33.530350672 +0800 +++ test2.txt 2018-08-01 13:18:54.326350260 +0800 @@ -1 +1,2 @@ aaaa +bbbb
diff参数解释
-N 在比较目录时若是某个文件只出现了一次,那么在比较不一样时会默认和空文件比较
-a 将全部的文件都做为普通text(之比较文本文件)
-u 以合并的方式显示文件内容的不一样
-r 若是是文件夹则进行递归进行比较blog
mkdir patch cp test1.txt test.patch../patch/
patch -p0 < test.patch
test1.txt文件内容以下递归
aaa
bbb
能够看到patch已经打进去了
参数介绍
patch命令中最经常使用的就是-pX这个参数
在上面咱们注意到patch文件以下内容博客
--- test1.txt 2018-08-01 13:17:33.530350672 +0800
此时咱们的参数为-p0,此时patch 就会在当前目录下寻找test1.txt文件,如在在patch文件中是这样记录的class
---a/b/test1.txt 2018-08-01 13:17:33.530350672 +0800
那么-p0会在当前目录下寻找a目录,a目录下寻找b,以后在b中寻找test1.txt文件。
若是是 -p1,patch命令就会舍弃a,先寻找b再寻找test1.txt
若是是-p2 ,会舍弃a/b,直接寻找test1.txt
因此-pX中 X表明就是所要舍弃的层级目录
patch还有不少参数,可是-pX是最为经常使用的
patch多用于系统升级,只要有一个基础版本,以及基于这个版本的一些patch,就能够进行升级
转自
patch -p0 和patch -p1的區別 | 學步園 https://www.xuebuyuan.com/zh-hant/1166329.html
patch的学习和使用 - 简书 https://www.jianshu.com/p/1df286850317
patch命令用法 - 车子(chezi) - CSDN博客 https://blog.csdn.net/longintchar/article/details/74151042