打patch命令,如何打patch

http://www.itjxue.com  2023-01-17 22:14  来源:未知  点击次数: 

patch是什么,怎么用?

Patch多指补丁的意思比如内存补丁、文件补丁等, 也是电脑命令程序的一种。

1、要将 difflisting 文件中的差异列表应用到 prog.c 文件,请输入:

patch -i difflisting prog.c

2、要保存 prog.c 文件的原始版本,请输入:

patch -b -i difflisting prog.c

它将更改应用到 prog.c 并且在 prog.c.orig 文件中保存 prog.c 的原始内容。

3、要打补丁到 prog.c 文件而不改变原始版本,请输入:

patch -i difflisting -o prog.new prog.c

它将 prog.c 当成源文件使用,但是更改后的版本写到名为 prog.new 的文件中。

扩展资料:

patch的文件名

如果没有指定 File 参数,要获得供编辑的文件名,patch 命令会执行下面的步骤:

1、在上下文差异列表的头部分,文件名由以 ***(三个星号)或者 ---(三个破折号)开头的行确定。以 *** 开头的行表示获取补丁的文件,然而以 --- 开头的行表示应该应用补丁的文件名。选择存在文件的最短名称。

2、如果在前导文本中有 Index: 行,patch 命令尝试使用来自于那一行中的文件名。

3、上下文差异文件头优先于 Index: 行。

4、 如果从前导文本中不能确定文件名,patch 命令提示输入需要打补丁的文件名。

5、如果不能找到原始文件,但是有适合的 SCCS 或 RCS 文件可用,patch 命令尝试获取或检出文件。

6、如果前导文本包含 Prereq: 行,patch 命令从先决条件行中获取第一个词(通常是版本号)并且检查输入文件看是否能找到那个词。如果找不到,patch 命令在继续运行前会提示确认。

参考资料来源:百度百科-Patch

diff命令和patch命令的使用

diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch程序,可以根据diff的输出将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。

diff命令的格式一般为:

diff [参数][文件或者目录1][文件或者目录2]

例如,有文件test1和test2:

将会输出:

格式的含义如注释所示。

diff 的normal 显示格式有三种提示:

a - add

c - change

d - delete

比较常用的是以合并的方式显示两个文件的不同:

输出如:

这种输出方式输出的内容可以用于使用patch命令进行打补丁包。patch命令我们稍后再看。

diff命令也可以比较两个文件夹的不同:

例如有两个文件夹testa和test,将test1和test2放进去:

得到:

第一部分是文件的信息

"---"表示变动前的文件,"+++"表示变动后的文件。

第二部分表示变动的位置

@@ -1,11 +1,5 @@

减号表示第一个文件,后面的表示第一行起一共11行。加号表示第二个文件。后面是第一行起一共5行。

接下来的表示区别的部分。

例如:

将得到:

这种模式中

“|”表示前后2个文件内容有不同

“”表示后面文件比前面文件少了1行内容

“”表示后面文件比前面文件多了1行内容

我们可以先用diff命令生成patch文件。然后使用patch命令将第二个文件内容修改成第一个文件的内容。

例如上述的test1和test2:

之后test2的内容就会和test1内容一致了。

svn diff生成的patch也可以用于更新文件

Linux命令diff、patch

背景

在Linux系统环境的工作过程中,经常遇到需要对比文件差异的情况,此时,使用Linux提供的diff工具可以方便的发现文件不同版本之间差异,从而快速排除解决问题。

Windows端有强大文件对比工具BeyondCompare。

patch 命令可以将diff命令的输出应用到原始的对比文件中,将新版本的更新应用到原始的文件中。

命令

diff [option] [file1] [file2]

patch [option] [file1] [file_differ]

测试环境

WSL: Linux PERSONALPC 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux

测试过程

(责任编辑:IT教学网)

更多

推荐FTP服务器文章