博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
打patch p0 p1区别
阅读量:6967 次
发布时间:2019-06-27

本文共 890 字,大约阅读时间需要 2 分钟。

如何使用patch

对于一个patch文件,有两种常用使用方法:
1.代码:cat new-patch | patch -p0

2.代码:patch -p0 < new-patch
 

patch命令里面的层数(-p0?-p1?)

参数-p来指定从第几层开始比较。比如有一个patch文件的补丁头是这样的:

代码:
--- old/modules/pcitableMon Sep 27 11:03:56 1999
+++ new/modules/pcitableTue Dec 19 20:05:41 2000

如果使用参数-p0,就表示从当前目录,找一个叫作new的目录,在它下面找一个叫modules的目录,再在它下面找一个叫pcitableMon的目录。

如果使用参数-p1,就表示忽略第一层,从当前目录找一个叫modules的目录,在它下面找一个叫modules的目录。这样会忽略掉补丁头提到的new目录。
依此类推。
patch文件的结构
补丁头
补丁头是分别由---/+++开头的两行,用来表示要打补丁的文件。
一个补丁文件中的多个补丁
一个补丁文件中可能包含以---/+++开头的很多节,每一节用来打一个补丁。所以在一个补丁文件中可以包含好多个补丁。
块是补丁中要修改的地方。它通常由一部分不用修改的东西开始和结束。他们只是用来表示要修改的位置。他们通常以@@开始,结束于另一个块的开始或者一个新的补丁头。
块的缩进
块会缩进一列,而这一列是用来表示这一行是要增加还是要删除的。
块的第一列
+号表示这一行是要加上的。
-号表示这一行是要删除的。
没有加号也没有减号表示这里只是引用的而不需要修改。

分析

这个例子是由命令

代码:
diff -u old/modules/pcitable new/modules/pcitable

创建的。不过最好是用命令diff -Naur来代替diff -u。

它修改了两个文件,new/modules/pcitable和new/usr/share/kudzu/pcitable。
第一个补丁头包含两个块,分别增加了两行和一行。

 

转载地址:http://xjisl.baihongyu.com/

你可能感兴趣的文章
C/C++产生随机数
查看>>
iOS:基于RTMP的视频推流
查看>>
html学习笔记
查看>>
linux下getrlimit与sysconf函数
查看>>
使用NPOI生成Excel级联列表
查看>>
Python 集成开发环境(IDE)
查看>>
Linux CGroup
查看>>
jenkins安装与配置
查看>>
bzoj 4871: [Shoi2017]摧毁“树状图” [树形DP]
查看>>
go语言中的数组
查看>>
对做技术的反思
查看>>
TP框架中模糊查询实现
查看>>
分布式事物的原理图
查看>>
cocos2dx编译安卓版本号查看C++错误
查看>>
Spark学习笔记——房屋价格预测
查看>>
Tutorial: Generate BBox or Rectangle to locate the target obejct
查看>>
Anton and Letters
查看>>
阿里云服务器带宽跑满怎么办
查看>>
java maven通过SMTP发送QQ邮件的完全步骤
查看>>
结构型模式—适配器模式
查看>>