diff (制作补丁)和 patch(添加补丁) 的简介及简单使用

  1. diff是Linux系统的一个很重要的工具程序,我们通常用diff对同一软件(或程序)的不同版本的文件进行对比查看。不过,你不要用diff去比较两个完全不相干的文件,因为那样是比不出结果来的。
  2. diff是以“行”为单位比较的。
  3. diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。diff比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,这也是我们常说的patch文件,即补丁文件。patch能将diff文件运用于原来的两个集合之一,从而得到另一个集合。举个例子来说文件A和文件B,经过diff之后生成了补丁文件C,那么这个过程相当于 A -B = C ,那么patch的过程就是B+C= A 或A-C =B。因此我们只要能得到A, B, C三个文件中的任何两个,就能用diff和patch这对工具生成另外一个文件。

一、diff

1.简介

diff 可以比较两个东西,并可同时记录下二者的区别。

制作补丁时的一般用法和常见参数为:

diff 【参数】 源文件(夹) 目的文件(夹)

常用参数:
-b        ##忽略空格
-B        ##忽略空行
-i        ##忽略大小写
-c        ##显示文件所有内容并标识不同
-r        ##对比目录
-u        ##合并输出

2.输出信息

[num1,num2][a|c|d][num3,num4]
                    ## num1,num2    第一个文件中的行
                    ## a            添加
                    ## c            更改
                    ## d            删除
                    ## <            第一个文件中的内容
                    ## >            第二个文件中的内容
                    ## num3,num4    第二个文件中的行 

3.参数效果及补丁制作

<1>实验环境的构造

<2>参数效果

<3>制作补丁

二、patch

1.简介

  1. 将 diff 记录的结果(即补丁)应用到相应文件(夹)上
  2. 文件A和文件B,经过diff之后生成了补丁文件C,那么这个过程相当于 A -B = C ,那么patch的过程就是B+C= A 或A-C =B

2.安装patch服务

dnf install patch -y

2. patch的用法和常见参数

patch  源文件  补丁文件
    -b            ##备份原文件

 

热门文章

暂无图片
编程学习 ·

C语言实现为终端程序--webshell基石

之前对ssh一直很困惑它是如何实现的,网上也没有相关代码实例,所以自己花了一段时间研究了一下。本篇博客主要写了两个程度:服务端和客户端,通过客户端可以远程登录服务端,执行shell命令。代码实现的比较糙,但是基本原理一看就明白。一、主要核心思想:1)创建pty虚拟终端…
暂无图片
编程学习 ·

OpenCV的初步解读

OpenCV的初步解读图像读取:cv2.imread(path,flag)`` flag:如何读取图片:cv2.IMREAD_COLOR:读取彩色图像。图像的透明度会被忽略(默认参数)。 cv2.IMREAD_GRAYSCALE:读取灰度图像。 flag=-1, 8位深度,原通道 flag=0, 8位深度 1通道 flag=1, 8位…
暂无图片
编程学习 ·

leetcode-341-扁平化嵌套列表迭代器-java

题目及测试package pid341; /* 扁平化嵌套列表迭代器给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。示例 1:输入: [[1,1],2,[1,1]] 输出: […
暂无图片
编程学习 ·

Linux下用ls和du命令查看文件以及文件夹大小

ls的用法 ls -l |grep “^-”|wc -l或find ./company -type f | wc -l 查看某文件夹下文件的个数,包括子文件夹里的。 ls -lR|grep “^-”|wc -l 查看某文件夹下文件夹的个数,包括子文件夹里的。 ls -lR|grep “^d”|wc -l 说明:ls -l 长列表输出该目录下文件信息(注意这里…
暂无图片
编程学习 ·

APP新增功能介绍页

纲要 1、功能名称; 2、因为什么需求原因,推出此功能; 3、设置路径、使用路径,每个小流程使用【】和-链接; 4、具体某角色的操作路径截图; 5、截图上,使用红框、箭头,文字等标记并写上简单的说明文字; 6、规则说明:功能使用后,会该角色会收到什么,别的用户会收到什么…
暂无图片
编程学习 ·

一文详解 Ansible 的自动化运维

一、Ansible 概述 Ansible 是近年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误。 Ansible 通过本身集成的非常丰富的模块可以实现各种管理任务,其自带模块超过上千个。更为重要的是,它操作非常简单,即使小白…
暂无图片
编程学习 ·

redis集群springboot连接

谢谢参考:https://blog.csdn.net/CNZYYH/article/details/85696674一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式。利用redis这两种场景的消息队列都能够实现。 定义:生产者消费者模式 :生产者生产消息放到队列里,多个消费者同时监听队列…
暂无图片
编程学习 ·

应用10秒部署、成本降低50% 阿里云serverless容器改写云计算极限

在将应用部署时间从以天计缩短到以小时计后,云计算正进入秒计时代:阿里云推出的最新计算形态Serverless容器服务改写了云计算极限,单实例启动时间为创世界纪录的10秒,1分钟可弹出1000实例,这使按需按秒计费成为现实,在云计算大大降低计算成本的基础上,让总计算成本再次降…
暂无图片
编程学习 ·

51小项目——使用proteus搭建简易的光照度计-(1)

总述 本项目基于51单片机,实现了对光敏电阻两端电压信号的简单获取,并通过数码管显示,蜂鸣器可以根据电压信号的大小发出不同间隔的声音。 注意: 由于疫情原因限制,无法返校制作实物,故本项目仅在proteus中完成了仿真,未能完成实物制作,仿真结果可能与实物结果不符 介绍…
暂无图片
编程学习 ·

从零开始学Python:第七课-关于分支和循环结构的应用

通过上两节课的学习,大家对Python中的分支和循环结构已经有了感性的认识。分支和循环结构的重要性不言而喻,它是构造程序逻辑的基础,对于初学者来说也是相对困难的部分。大部分初学者在学习了分支和循环结构后都能理解它们的用途和用法,但是遇到实际问题的时候又无法下手;…
暂无图片
编程学习 ·

sed详解

1. Sed简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有…
暂无图片
编程学习 ·

HDU 4686 Arc of Dream (矩阵快速幂)

题意:An Arc of Dream is a curve defined by following function:where a 0 = A0 a i = a i-1 * AX+AY b 0 = B0 b i = b i-1 * BX+BY 给出n,A0,AX,AY,B0,BX,BY,What is the value of AoD(N) modulo 1,000,000,007? 题解:矩阵快速幂 数据范围很恶心,先要对原数据取…
暂无图片
编程学习 ·

GitHub更新fork的代码

1、在本地装好github客户端,或者git客户端 2、clone 自己的fork分支到本地,可以直接使用github客户端,clone到本地,如果使用命令行,命令为:git clone https://github.com/liuyanqing1023/WxJava.git3、增加源分支地址到你项目远程分支列表中(此处是关键),先得将原来的仓…
暂无图片
编程学习 ·

[指南]-DeepFaceLab 2.0说明和教程(推荐)

DeepFaceLab 2.0指南/教程此教程机翻自:https://mrdeepfakes.com/forums/thread-guide-deepfacelab-2-0-explained-and-tutorials-recommended什么是DeepFaceLab 2.0?DeepFaceLab 2.0是利用机器学习来交换视频中人脸的工具/应用程序。1.0和2.0有什么区别?DFL 2.0有什么新功能…