patch 文件 和 用法

0. 基础知识:

0.1: diff用法:

 Diff 命令的用法

语法:diff [选项] file1 file2

 

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

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


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

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

例1:

文件A内容:

1234567
Sam
0987654321

 

文件B内容:

Sam
10987654321
add

 

#diff a b

1d0
< 1234567
3c2,3
< 0987654321
---
> 10987654321
> add

 

说明:

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

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

则上面结果的解释为:

1d0

<1234567

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

< 表明第一个文件。

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

 

3c2,3
< 0987654321
---
> 10987654321
> add

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

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

 

例2:

#diff a b > c

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

 

 

0.2: patch用法:

用法:

patch [options] [originalfile [patchfile]]

but usually just

patch -pnum <patchfile>

 

通常使用:

#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动作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值