Linuxpatch命令介绍

patch命令Linux和其他类Unix操作系统中,用于将一个文件的更改应用到另一个文件。这个命令可以读取一个补丁文件,并使用其中的内容作为一组指令。通过遵守这种指令,更改后的文件中的修改可以在原始文件中复制。

Linuxpatch命令适用的Linux版本

patch命令在大多数Linux发行版中都是可用的,包括Debian、Ubuntu、Alpine、ArchLinux、KaliLinux、RedHat/CentOS、Fedora和Raspbian。若果在个别版本中不可用,你可以使用包管理器(如apt、yum或dnf)来安装。比如,在Debian或Ubuntu上,你可以使用以下命令来安装:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install patch

在CentOS7上,你可以使用:

[linux@bashcommandnotfound.cn ~]$ sudo yum install patch

而在CentOS8上,你应当使用:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install patch

Linuxpatch命令的基本句型

linux命令行创建文件夹_linux用命令创建文件夹_linux创建文件夹 命令

patch命令的基本句型如下:

patch [options] [originalfile [patchfile]]

然而,一般我们会将补丁文件重定向到patch命令:

patch < /path/to/patchfile

Linuxpatch命令的常用选项或参数说明

以下是patch命令的一些常用选项:

选项描述

-p或--strip

删掉文件名后面的目录

linux创建文件夹 命令_linux命令行创建文件夹_linux用命令创建文件夹

-R或--reverse

反转补丁

-N或--forward

忽视早已应用的补丁

-l或--ignore-whitespace

忽视空白字符的修改

Linuxpatch命令实例解读实例1:应用补丁

假定我们有一个名为foo.c的文件linux创建文件夹 命令,我们收到了一个包含对foo.c更改的补丁文件patch.diff。我们可以使用以下命令应用补丁:

[linux@bashcommandnotfound.cn ~]$ patch foo.c < patch.diff

实例2:撤消补丁

假如我们想撤消刚刚应用的补丁,我们可以使用-R选项:

[linux@bashcommandnotfound.cn ~]$ patch -R foo.c < patch.diff

实例3:应用多个补丁

假如你有多个补丁文件须要应用到同一个源文件linux命令行,你可以使用-选项来从标准输入读取补丁。诸如:

[linux@bashcommandnotfound.cn ~]$ cat patch1.diff patch2.diff | patch foo.c -

实例4:忽视空白字符的修改

假如你的补丁文件中包含了一些不重要的空白字符的修改,你可以使用-l选项来忽视那些修改:

[linux@bashcommandnotfound.cn ~]$ patch -l foo.c < patch.diff

linux命令行创建文件夹_linux创建文件夹 命令_linux用命令创建文件夹

实例5:创建补丁文件

你可以使用diff命令来创建一个补丁文件。诸如,假如你有两个版本的foo.c文件长春linux培训,你可以使用以下命令来创建一个补丁文件:

[linux@bashcommandnotfound.cn ~]$ diff -u foo.c.orig foo.c > patch.diff

之后,你可以使用patch命令来应用这个补丁:

[linux@bashcommandnotfound.cn ~]$ patch foo.c.orig < patch.diff

这将会将foo.c.orig文件更改为foo.c文件的内容。

实例6:应用补丁到多个文件

假如你有一个补丁文件,须要将其应用到多个文件linux创建文件夹 命令,你可以使用-选项来从标准输入读取补丁。诸如:

[linux@bashcommandnotfound.cn ~]$ cat patch.diff | patch -p1

这将会将补丁应用到当前目录下的所有文件。

实例7:查看补丁会做哪些

假如你只是想查看一个补丁会做哪些,而不实际应用它,你可以使用--dry-run选项:

[linux@bashcommandnotfound.cn ~]$ patch --dry-run foo.c < patch.diff

这将会显示补丁会做哪些,但不会实际更改文件。

实例8:忽视早已应用的补丁

假如你不确定一个补丁是否早已被应用,你可以使用-N或--forward选项来忽视早已应用的补丁:

[linux@bashcommandnotfound.cn ~]$ patch -N foo.c < patch.diff

假如补丁早已被应用,patch命令将不会做任何事情。

Linuxpatch命令的注意事项Linuxpatch相关命令

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复