补丁
这个 补丁 程序用于将更改应用于文本文件。 它接受来自 差异 并且通常用于将旧版本的文件转换为新版本。 让我们考虑一个著名的例子。 Linux 内核是由一个庞大的、组织松散的团队开发的
对源代码不断提交小改动的贡献者。 Linux 内核由几百万行代码组成,而一个贡献者一次所做的更改非常小。 每次进行小的更改时,贡献者向每个开发人员发送整个内核源代码树是没有意义的。 而是提交一个差异文件。 diff 文件包含从先前版本的内核到具有贡献者更改的新版本的更改。 然后接收器使用 补丁 程序将更改应用于他自己的源代码树。 使用 差异/补丁 提供两个显着优势:
1. 与源代码树的完整大小相比,diff 文件非常小。
2. diff 文件简洁地显示了所做的更改,允许补丁的审阅者快速评估它。
当然可以, 差异/补丁 将适用于任何文本文件,而不仅仅是源代码。 它同样适用于配置文件或任何其他文本。
准备一个 diff 文件以供使用 补丁,GNU 文档(参见下面的进一步阅读)建议使用 差异 如下:
差异-Naur 旧文件 新文件 > 差异文件
其中 旧文件 和 新文件 是单个文件或包含文件的目录。 这 r
选项支持目录树的递归。
创建 diff 文件后,我们可以应用它来将旧文件修补到新文件中:
修补 差异文件
我们将用我们的测试文件进行演示:
[我@linuxbox ~]$ diff -Naur file1.txt file2.txt > patchfile.txt
[我@linuxbox ~]$ 补丁 < 补丁文件.txt
修补文件file1.txt [me@linuxbox ~]$ 猫文件1.txt b
cde
[我@linuxbox ~]$ diff -Naur file1.txt file2.txt > patchfile.txt
[我@linuxbox ~]$ 补丁 < 补丁文件.txt
修补文件file1.txt [me@linuxbox ~]$ 猫文件1.txt b
cde
在这个例子中,我们创建了一个名为的差异文件 补丁文件.txt 然后使用 补丁 程序来应用补丁。 请注意,我们不必指定目标文件 补丁,因为差异文件(统一格式)已经在标题中包含文件名。 应用补丁后,我们可以看到 文件1.txt 现在匹配 文件2.txt.
patch 有很多选项,还有其他实用程序可用于分析和编辑补丁。