如何在Linux操作系统下对文件应用补丁

使用'diff'和'patch'来更新文件

补丁是插入或修改现有代码集的一段计算机代码。在编程过程中,补丁通常用于替换对源代码的更改。Linux.包括一个补丁简化此过程的实用程序。

修补过程通常用于正式的变更控制系统,其中代码质量和测试的专业最佳实践实际上有效。修补程序不太常用于业余工程,其中源代码在程序员自行决定中更改。

修补过程

在典型用例中,您有一个原始版本源代码和它的修改版本。原始已正式批准,并且必须遵循一个明确的过程。这些更改发生在修补程序文件中。

使用调用的工具将两个文件版本之间的差异降低到单个文件,该文件列出了第二个对第一个的特定更改。

然后,生成的差异文件通过使用来修改原始代码修补工具。

应用补丁:一个例子

考虑一个典型的“Hello World”程序。源代码在c中看起来如此:

#include 
int main()
{
Printf(“Hello World!”);
}

更改打印的消息你好宇宙!,开发一个替代版本的代码,如下所示:

#include 
int main()
{
Printf(“Hello Universe!”);
}

通过使用使用补丁文件用途:

Diff -u helloworld.c helloworld2.c >文件

然后,您将看到修补程序文件如下所示:

Patch文件在Linux中

补丁文件列出了每个比较文件。它提供符号,---+++,用其上次修改日期识别每个文件名。然后总结了一对的变化的位置@@符号。最后,它列出了源代码,使用指示的加上和负符号标记不同的行。通常,减号表示在修补文件中删除该行,并且加号表示替换,如果该行将被替换。

要将补丁文件应用于原始文件,请执行:

patch 
      
      

此时,第一个文件更改以匹配第二个文件。

要撤消修补程序,请使用- r选择:

patch -r 
      
      

考虑

这种修补源代码的方法不像以前那么常见了。现代的源代码控制系统,如Git和Subversion,会随着时间的推移自动管理版本,包括各种开发和测试分支,因此手动的差异检查和文件补丁现在由版本控制工具管理。如果必须遵循正式的编码结构或遵循团队编码标准,可以使用Git之类的工具。

但是,一个有效的用例修补本地计算机上的系统涉及到整个文件目录的更改。例如,如果您开发了一个网站,但需要仅对单行的更改为单行 - 类似版权行 - 那么此系统同时更新所有这些页面。

咨询男人页面修补有关其他背景。

此页面有用吗?