Linux补丁命令教程及示例

Patch是一个命令,用于将补丁文件应用于源代码、配置等文件。修补程序文件保留原始文件和新文件之间的差异。为了得到我们使用的差异或补丁 diff 工具。

null

软件是由一堆源代码组成的。源代码是由开发人员开发和修改的。为每次更改获取全新的文件不是一种实用且快速的方法。因此,只分发更改是最好的方法。应用于旧文件和新文件或修补文件的更改将针对新版本的软件进行编译。

语法

patch [options] [originalfile [patchfile]]   patch -pnum  

救命

$ patch --help
Help
救命

创建修补程序文件

现在我们将在这一步创建补丁文件,但我们需要一些简单的源代码与两个不同的版本。我们称源代码文件名为 myapp.c .

我的应用程序旧.c

#include     void main(){    printf("Hi poftut");    }

我的应用程序c

#include     void main(){    printf("Hi poftut");   printf("This is new line as a patch");   }

现在我们将创建一个名为 myapp.patch .

$ diff -u myapp_old.c myapp.c > myapp.patch
Create Patch File
创建修补程序文件

我们可以打印 myapp.patch 使用以下命令创建文件

$ cat myapp.patch

应用修补程序文件

现在我们有了一个补丁文件,我们假设我们已经将这个补丁文件传输到了一个系统,这个系统保存了名为 myapp_old.patch . 我们将简单地应用这个补丁文件。以下是修补程序文件包含的内容

  • 修补文件的名称
  • 不同的内容
$ patch < myapp.patch
Apply Patch File
应用修补程序文件

在应用修补程序之前进行备份

其中一个有用的功能是在应用修补程序之前进行备份。我们将使用 -b 选择备份。在我们的示例中,我们将使用 myapp.patch .

$ patch -b < myapp.patch
Take Backup Before Applying Patch
在应用修补程序之前进行备份

备份名称将与源代码文件相同,只需添加 .orig 分机。所以备份文件名 myapp.c.orig

设置备份文件版本

在进行备份时,备份文件可能已经准备就绪。所以我们需要保存多个备份文件而不重写。有 -V 选项,该选项将设置原始文件的版本控制机制。在本例中,我们将使用 numbered 版本控制。

$ patch -b -V numbered < myapp.patch
Set Backup File Version
设置备份文件版本

从截图中我们可以看到,新的备份文件被命名为数字 myapp.c.~1~

验证修补程序文件 应用或干运行

我们可能只想验证或查看修补的结果。此功能有一个选项。我们将使用 --dry-run 选项,只模拟修补过程,但不改变任何文件真的。

$ patch --dry-run < myapp.patch

反向补片

有时我们可能需要按相反的顺序修补。所以申请的过程是相反的。我们可以用 -R 此操作的参数。在本例中,我们将修补 myapp_old.c 而不是 myapp.c

$ patch -R myapp_old.c < myapp.patch
Reverse Patch
反向补片

正如我们所看到的,新的变化被还原回来了。

相关文章: 如何使用windiff比较Windows中两个文件的内容,并举例说明?

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享