patch的用法【转】
什么是patch
patch即补丁之意,记录文件中的不同,能够与文件进行整合,从而改变文件中的内容
如何制作patch
在Linux系统中提供了diff程序,可以使用diff程序,比较文件之间的不同从而制作出patch文件
- 在系统中(我用的是Ubuntu)创建diff文件夹,创建test1.txt,test2.txt
mkdir diff
vi test1.txt
vi test2.txt
test1.txt文件内容如下
aaaa
test2.txt文件内容如下
aaaa
bbbb
- 使用diff命令制作patch文件
diff -Naur test1.txt test2.txt > test.patch
之后在当前目录中会存在三个文件
test1.txt test2.txt test.patch
test.patch 文件的内容
--- test1.txt -- ::33.530350672 +
+++ test2.txt -- ::54.326350260 +
@@ - +, @@
aaaa
+bbbb
diff参数解释
-N 在比较目录时如果某个文件只出现了一次,那么在比较不同时会默认和空文件比较
-a 将所有的文件都作为普通text(之比较文本文件)
-u 以合并的方式显示文件内容的不同
-r 如果是文件夹则进行递归进行比较
如何使用patch
- 准备好patch文件和原版本文件
创建patch文件夹,将test1.txt 和test.patch文件拷贝进去
mkdir patch
cp test1.txt test.patch../patch/
- 执行patch命令
patch -p0 < test.patch
test1.txt文件内容如下
aaa
bbb
可以看到patch已经打进去了
参数介绍
patch命令中最常用的就是-pX这个参数
在上面我们注意到patch文件如下内容
--- test1.txt -- ::33.530350672 +
此时我们的参数为-p0,此时patch 就会在当前目录下寻找test1.txt文件,如在在patch文件中是这样记录的
---a/b/test1.txt -- ::33.530350672 +
那么-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
patch的用法【转】的更多相关文章
- Patch
http://www.cnblogs.com/cute/archive/2011/04/29/2033011.html zhezhelin diff和patch使用指南 diff和patch是一对工具 ...
- python3 mock
mock的官网学习备忘录:官网地址https://docs.python.org/3/library/unittest.mock.html#quick-guide 1,安装 python3 unitt ...
- django的单元测试框架unittest、覆盖率
django的单元测试 指定测试范围: 指定运行某些测试文件./manage.py test --pattern="tests_*.py" -v 2 运行所有测试文件./manag ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- 十分钟掌握diff&patch用法
作为程序员,了解diff&patch命令是非常必要的.比如说我们发现某个项目有bug代码,而自己又没有svn的提交权限,那么此时最合适的解决方法就是用diff命令做一个补丁发给项目成员.项目成 ...
- svn patch用法
最近遇到了一个patch的使用场景: 有一个同事对源码做了一些修改,但是又不想将源码提交到SVN服务器,而我又想得到他所做的修改. patch的使用方法: 创建patch 在要导出“修改”的目录中,单 ...
- patch 用法
diff -Nrua a b > c.patch 实例说明: --- old/modules/pcitable Mon Sep 27 11:03:56 1999 +++ new/modules/ ...
- patch用法 (转载)
转载:http://shenze60.blog.163.com/blog/static/315747722009724113026896/ 首先介绍一下diff和patch.在这里不会把man在线文档 ...
- sort、uniq 、 join 、 comm、diff 、 patch 、df、du 和 time 命令的用法
1 sort 命令 同文本文件打交道时,总避不开排序,那是因为对于文本处理任务而言,排序(sort)可以起到不小的作用.sort 命令能够帮助我们对文本文件和 stdin 进行排序操作.通常,它会结合 ...
随机推荐
- 首次使用DoNetCore EFCore DbFirst
环境 Visual Studio 2017 开始搭建项目 1.在 Visual Studio 2017 中创建新项目 “文件”>“新建”>“项目” 从左侧菜单中选择“已安装”>“模板 ...
- php的多功能文件操作类
本类为文件操作类,实现了文件的建立,写入,删除,修改,复制,移动,创建目录,删除目录,列出目录里的文件等功能,路径后面别忘了加"/" 创建指定路径下的指定文件 * @param s ...
- MySQL Case--优化OR语句踩坑记录
问题描述 研发同事反馈某应用执行较慢,对应SQL为: UPDATE bs_serial_trac , LOCK_VALUE = '', UPDATE_USER = 'transSys' ' AND ( ...
- 【Code Tools】AB性能测试工具(二)
一.测试Get请求 1.每次并发请求10个,总共1000个请求 ab -n -c https://www.baidu.com/ 2.指定Header参数 通过-H来指定 ab -n -c -H 'Ac ...
- 拿webshell方法汇总
地址:https://blog.csdn.net/Breeze_CAT/article/details/80044676
- 多个线程分别顺序交替打印一种不同字符abcdefg(已实现随便多少个线程打印多少个字符,利用线程池实现多线程)
下面实现多线程顺序打印字符"abcdefg": 实现Runnable接口: /** * @author: rhyme * @date: 2019-08-17 14:39 * @to ...
- spring的声明式事务和编程式事务
事务管理对于企业应用来说是至关重要的,当出现异常情况时,它可以保证数据的一致性. Spring事务管理的两种方式 1.编程式事务 使用Transaction Ttempleate或者直接使用底层的Pl ...
- python获取参数列表
def f(a=1, b=2, c=3): print(locals())#在函数内获取 #使用inspect模块,简单方便 python2.7: import inspectinspect.geta ...
- 【转】分布式事务,EventBus 解决方案:CAP【中文文档】
[转]分布式事务,EventBus 解决方案:CAP[中文文档] 最新文档地址:https://github.com/dotnetcore/CAP/wiki 前言 很多同学想对CAP的机制以及用法等想 ...
- Codeforces Round #605 (Div. 3) E. Nearest Opposite Parity(最短路)
链接: https://codeforces.com/contest/1272/problem/E 题意: You are given an array a consisting of n integ ...