永发信息网

patch命令是什么?如何使用?

答案:2  悬赏:80  手机版
解决时间 2021-11-14 00:39
  • 提问者网友:却不属于对方
  • 2021-11-13 06:14
patch命令是什么?如何使用?
最佳答案
  • 五星知识达人网友:duile
  • 2021-11-13 07:32
我来解答一下吧追问好的追答顾名思义,patch命令就是用来将修改(或补丁)写进文本文件里。patch命令通常是接收diff的输出并把文件的旧版本转换为新版本。举个例子,Linux内核源代码由百万行代码文件构成,所以无论何时,任何代码贡献者贡献出代码,只需发送改动的部分而不是整个源代码,然后接收者用patch命令将改动写进原始的源代码里,更多命令请查看《Linux就该这么学》第二章内容。

创建一个diff文件给patch使用,

1. # diff -Naur old_file new_file > diff_file

旧文件和新文件要么都是单个的文件要么都是包含文件的目录,-r参数支持目录树递归。

一旦diff文件创建好,我们就能在旧的文件上打上补丁,把它变成新文件:

1. # patch < diff_file
全部回答
  • 1楼网友:雾月
  • 2021-11-13 07:58
patch命令用于为特定软件包打补丁,该命令使用diff命令对源文件进行操作。

格式:patch [选项] [原始文件 [补丁文件]]
常用参数:
-r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况。
-u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
-p0 选项从当前目录查找目的文件(夹)(直接使用补丁文件里面指定的路径)
-p1 选项忽略掉第一层目录,从当前目录查找(去掉补丁文件指定路径最左的第1个'/'及前面所有内容)。
-E 选项说明如果发现了空文件,那么就删除它
-R 选项说明在补丁文件中的“新”文件和“旧”文件现在要调换过来了(实际上就是给新版本打补丁,让它变成老版本)

示例:
1、单个文件
首先将两个文件的内容显示如下:
$ cat test0
00000000
00000000
00000000
$ cat test1
00000000
Patch多指补丁的意思比如内存补丁、文件补丁等,是电脑命令程序的一种。  如果没有指定File参数,要获得供编辑的文件名,patch命令会执行下面的步骤:  1.在上下文差异列表的头部分,文件名由以***(三个星号)或者---(三个破折号)开头的行确定。以***开头的行表示获取补丁的文件,然而以---开头的行表示应该应用补丁的文件名。选择存在文件的最短名称。  2.如果在前导文本中有Index:行,patch命令尝试使用来自于那一行中的文件名。  3.上下文差异文件头优先于Index:行。  4.如果从前导文本中不能确定文件名,patch命令提示输入需要打补丁的文件名。  5.如果不能找到原始文件,但是有适合的SCCS或RCS文件可用,patch命令尝试获取或检出文件。  6.如果前导文本包含Prereq:行,patch命令从先决条件行中获取第一个词(通常是版本号)并且检查输入文件看是否能找到那个词。如果找不到,patch命令在继续运行前会提示确认。  快玩游戏中patch文件夹中的内容在没有下载的任务时不会更改软件,不会影响游戏正常运行。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯