patch 文件 和 用法

patch 文件 和 用法0 基础知识 0 1 diff 用法 nbsp Diff 命令的用法语法 diff 选项 file1file2 nbsp nbsp nbsp nbsp nbsp 该命令的功能为逐行比较两个文本文件 列出其不同之处 它对给出的文件进行系统的检查 并显示出两个文件中所有不同的行 不要求事先对文件进行排序 说明 该命令告诉用户 为了使两个文件 file1 和 file2 一致 需要修改它们的哪些行

0. 基础知识:

0.1: diff用法:

 Diff 命令的用法

语法:diff [选项] file1 file2

 

    该命令的功能为逐行比较两个文本文件,列出其不同之处。它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。

说明:该命令告诉用户,为了使两个文件 file1 和 file2 一致,需要修改它们的哪些行。


 该命令的各选项含义如下:

    -b 忽略行尾的空格,而字符串中的一个或多个空格符都视为相等。
    -c 采用上下文输出格式(提供三行上下文)。
    -C n 采用上下文输出格式(提供 n 行上下文)。
    -e 产生一个合法的 ed 脚本作为输出。
    -r 当 file1 和 file2 是目录时,递归作用到各文件和目录上。





例1:

文件A内容:


Sam
0

 

文件B内容:

Sam

add

 

#diff a b

1d0
<
3c2,3
< 0

>
> add





 

说明:

字母 a、d 和 c 分别表示附加、删除和修改操作。字母(a、d和c)之前的行号是针对file1 的,其后面的行号是针对 file2 的. 

在上述形式的每一行的后面跟随受到影响的若干行,以 “<” 打头的行属于第一个文件,以 “>” 打头的行属于第二个文件。



则上面结果的解释为:

1d0

<

文件A的第1行, 文件B的第0行。d 表示删除。

< 表明第一个文件。

所以说:A要变化为B,,则需要删除(d)的第一行-()

 

3c2,3
< 0

>
> add



文件A的第3 行, 文件B的2,3行。c 修改

要A到B。需要修改A的第三行 0 到,add.

 

例2:

#diff a b > c

将a 到 b 的升级文件放到c 里面。 a就是原始文件,b就是目标文件。c就是补丁文件。

 

 

0.2: patch用法:

用法:

patch [options] [originalfile [patchfile]]

but usually just

patch -pnum

 

通常使用:

#patch -p0 < patchfile

patchfile很容易理解,就是diff生成出的补丁文件。

那么-p0, -p1是什么意思呢?

patch会打开patchfile. 看diff的是哪2个文件,就会去找原始文件。例如:

diff -uNr linux-2.6.28/Makefile linux-2.6.28-tcc/Makefile
— linux-2.6.28/Makefile       2008-12-25 08:26:37.000000000 +0900
+++ linux-2.6.28-tcc/Makefile   2010-03-05 11:47:29.000000000 +0900

则patch命令就会去找linux-2.6.28/Makefile。 但这个文件在哪个目录下呢?

-p0: 表示从当前目录去找linux-2.6.28,从这个目录内找到Makefile去做patch动作。

-p1: 表示忽略第一级目录linux-2.6.28,直接从当前目录去找Makefile去做patch动作。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217810.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午8:43
下一篇 2026年3月18日 上午8:43


相关推荐

  • java中定义json格式数据类型_java解析字符串

    java中定义json格式数据类型_java解析字符串在开过发过程中,遇到将一个实体类转换成json对象,转义后得到的字符串中,存在大小写转义错误。在测试中发现:1、字段名称都大写(AAA),不会有问题。2、字段名称都小写(aaa),不会有问题。3、字段名称首字母大写,其余大小写都存在(AaBb),得到的后的是:aaBb;因为基于分离开发,要严格按照规定的协议去做,所以这样是不被允许的。解决方法:引入jar包:jackson-databind-2.8…

    2026年2月10日
    9
  • 500元上门安装OpenClaw,还是大厂创企一键部署?“养龙虾”催生的中间人经济

    500元上门安装OpenClaw,还是大厂创企一键部署?“养龙虾”催生的中间人经济

    2026年3月13日
    2
  • Mac 中 PyCharm 配置 Anaconda环境

    Mac 中 PyCharm 配置 Anaconda环境在 python 开发中我们最常用的 IDE 就是 PyCharm 有关 PyCharm 的优点这里就不在赘述 在项目开发中我们经常用到许多第三方库 用的最多的命令就是 pipinstall 第三方库名进行安装 现在你可以使用一个工具来帮你解决经常安装第三方库的麻烦 这个工具就是 Anaconda Anaconda 集成了 100 多个常用的第三方库 在项目的开发中就可以减少使用 pip 命令进行安装 有关 A

    2026年3月27日
    1
  • docker离线安装部署_docker官方中文文档

    docker离线安装部署_docker官方中文文档离线安装docker

    2026年4月13日
    6
  • python生成随机字符串

    python生成随机字符串随机字符的场景大致有以下场景 1 产生随机字符串无数字 2 产生随机长度的字符串无数字 有数字 3 产生随机手机号 4 产生随机 n 位的数字 5 产生随机 n 以内的数字随机使用的两种思路如下 一 使用 random randint 0 n 定义一个字符数据源的数组 要产生多长的字符串就循环调用多少次 random randint 0 n n 数据源数组的长度 在这个数据源数组中选择随机位置的字符 然后进行拼接返回 defgenerate random str randomleng

    2026年3月19日
    2
  • 与沃尔玛Walmart建立EDI连接的准备

    与沃尔玛Walmart建立EDI连接的准备与沃尔玛 Walmart 建立 EDI 连接 需要有 RetailLink 访问权限 RetailLink 是沃尔玛 Walmart 的供应商平台 供应商可以在这个平台上进行 EDI 项目的连接测试 业务测试以及正式切入生产 想要获取这个访问权限需要联系沃尔玛的 RetailLink 团队 对于 EDI 而言 Walmart 指的是 WalmartStore 包括山姆会员店 超级购物中心 沃尔玛超市 社区店以及分销中心 供应商在与沃尔玛 Walmart 建立 EDI 连接时需要清楚这一点 传输协议第一步需要准备好 EDI

    2026年3月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号