什么是patch

patch即补丁之意,记录文件中的不同,能够与文件进行整合,从而改变文件中的内容

如何制作patch

在Linux系统中提供了diff程序,可以使用diff程序,比较文件之间的不同从而制作出patch文件

  1. 在系统中(我用的是Ubuntu)创建diff文件夹,创建test1.txt,test2.txt
mkdir diff
vi test1.txt
vi test2.txt

test1.txt文件内容如下

aaaa

test2.txt文件内容如下

aaaa
bbbb

  1. 使用diff命令制作patch文件
diff -Naur test1.txt test2.txt > test.patch

之后在当前目录中会存在三个文件

test1.txt test2.txt test.patch

test.patch 文件的内容

--- 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 如果是文件夹则进行递归进行比较

如何使用patch

  1. 准备好patch文件和原版本文件
    创建patch文件夹,将test1.txt 和test.patch文件拷贝进去
mkdir patch
cp test1.txt test.patch../patch/

  1. 执行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文件中是这样记录的

---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,就可以进行升级

转自

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

转载于:https://www.cnblogs.com/paul8339/p/11598782.html

patch的用法【转】相关推荐

  1. git中patch的用法

    Git 的 patch 用法是指通过创建一个补丁文件来修改或提交 Git 仓库中的代码. 一个 patch 文件是一种文本文件,它记录了将要在仓库中执行的代码更改.您可以创建补丁文件并将其发送给其他人 ...

  2. patch 命令用法详解

    patch,是打补丁的命令,有很多用法,见帮助#man patch patch -p0       ("p"指的是路径,后面的数字表示去掉路径的第几部分."0" ...

  3. MATLAB中关于patch的用法(涉及vertice,faces等的基础的介绍)

    首先感谢另一位博主的介绍,链接见下matlab--Patch函数创建补片的方法 这篇文章中的例子有一点不太对,按照文中的结果进行输出,是下图 另外推荐官方的有关patch的介绍: Patch 属性 基 ...

  4. linux下diff、patch制作补丁

    http://blog.csdn.net/goldfighter/article/details/6150309 学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者ba ...

  5. gzip与patch说明

    这个"gzip"就是"gun zip"啦,解压用的    "-cd"呢?     -c  就是" stdout --to-stdo ...

  6. diff和patch工具使用(转)

    本文转自 http://blog.chinaunix.net/uid-22848040-id-1767554.html diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,pa ...

  7. Patch文件的创建和使用

    patchc工具 diff和  patch是一对工具,在数学上来说,diff是两个集合的差运算,patch是两个集合的和运算. diff比较两个文件或两个文件集合的差异,并记录下来,生成一个diff文 ...

  8. spring-data-rest-rec 复现分析 cve-2017-8046

    漏洞信息 pivotal发布的漏洞信息如下: Malicious PATCH requests submitted to servers using Spring Data REST backed H ...

  9. python plot 坐标轴范围_Python-Matplotlib 15 坐标轴范围

    原博文 2017-02-22 10:52 − Python-Matplotlib 15 坐标轴范围 EG1 import numpy as np import matplotlib.pyplot as ...

最新文章

  1. 【WPF】动态设置Binding的ConverterParameter转换器参数
  2. springmvc简述
  3. 五个你绝不可忽视的HTML5特性
  4. 关于linux下制作静态库
  5. C#模拟POST表单提交 --- WebClient
  6. TCP协议连环12问
  7. 计算机存储单位字的英语,计算机存储基本单位,位、字节、字以及KB、MB和GB怎么换算?...
  8. js 多个定时器_Node.js系列深入浅出Node模块化开发——CommonJS规范
  9. c# lu分解的代码_LU分解(1)
  10. pygame系列文章
  11. 关于代理服务器的原理及用法
  12. 计算机和应用物理学,应用物理学与计算机科学与技术
  13. 第 1 章 程序员考试简介
  14. git基本命令、提交pr
  15. #python#生物信息学 提取文本某列信息 #提取氨基酸序列并且提取氨基酸结构序列与之对应
  16. 福禄克气体流量校准解决方案
  17. centos7的scp命令_Linux scp命令
  18. python使用worldcloud模块、jieba模块做QQ消息记录词云
  19. 输入字符串判断有多少个字母,数字和其他
  20. STM32独立按键实现单击双击长按功能

热门文章

  1. PFX提取 cer 提取 公钥和私钥及PHP读取cer 文件和pfx文件证书
  2. 网络舆情监测与分析研判工作如何高效做好的解决方案
  3. 2009.01.19(山寨)
  4. 3.2 Execution Model
  5. 损失函数——KL散度(Kullback-Leibler Divergence,KL Divergence)
  6. 想学板绘,需要练习线稿么,线稿怎么画好看点?
  7. DirectShow编程(3.1)- 关于DirectShow - DirectShow体系概述
  8. 引用bootstrap的两种方法
  9. document的使用方法
  10. Windows Print Spooler CVE-2021-1675 漏洞复现