Linux 文件对比与补丁操作详解

wKioL1NM2n6Qxl5gAAA9gvSfeCQ713.jpg

一、打补丁注意事项

在Linux系统中打补丁时,需特别注意以下几点:

  • 1. 打补丁的文件必须是未做任何修改的原始文件。可以通过查看补丁文件中的删除文件日期与待打补丁文件的日期是否一致来确认。如果文件被修改过,可能会导致补丁无法正确应用。
  • 2. 有些补丁需要依次逐个应用,而有些则可以直接应用最终版本。通常厂商会在文档中明确说明这一点。建议逐个应用补丁,以便每次都能验证补丁的正确性。

二、生成补丁(适用于发布补丁文件的人)

生成补丁文件的命令如下:

diff -Naur 路径1/old_file 路径2/new_file > patch_file.patch

注:patch_file.patch 是生成的新旧文件之间的补丁文件。路径2最好是指向修改后的文件所在的目录,这样在打补丁时可以把补丁文件放在待打补丁文件的同一目录下。同时,建议保留new_file,以便在打补丁过程中出现问题时进行对比。

三、打补丁(适用于打补丁的人)

打补丁的命令如下:

patch -bp1 

注:将patch_file.patch和待打补丁的文件放在同一目录下,执行上述命令即可将补丁应用到目标文件中。由于加入了参数-b,因此会生成一个以.org为后缀的备份文件,这是打补丁前的原始文件,确认补丁成功后可以删除。

四、撤销补丁(适用于打补丁的人)

撤销补丁的命令如下:

patch -Rp1 

注:此命令是在已成功应用补丁的基础上执行的,用于恢复到打补丁前的状态。

应用举例

[root@teacher-feng diff]# diff hujie.txt hujie-2024.txt  # 对比两个文件的差异
2,3c2
 hulaoban --->ceo
5,6c4,6
<18+
<
---
> 28+
> baba qu na er
> beijing shanghai shenzhen yiyang
[root@teacher-feng diff]# diff -Nu hujie.txt hujie-2024.txt
--- hujie.txt	2014-01-09 11:16:41.247531488 +0800
+++ hujie-2024.txt	2014-01-09 11:18:50.049531420 +0800
@@ -1,6 +1,6 @@
hujie
-hulaoban
-network
+hulaoban --->ceo
-18+
-
+28+
+baba qu na er
+beijing shanghai shenzhen yiyang

生成补丁:

[root@teacher-feng diff]# diff -u hujie.txt hujie-2024.txt > hujie-to-2024.patch
[root@teacher-feng diff]# ls
hujie-2024.txt  hujie-to-2024.patch  hujie.txt

打补丁:

[root@teacher-feng diff]# patch hujie.txt 

验证是否成功:

[root@teacher-feng diff]# diff -u hujie.txt hujie-2024.txt

撤销补丁:

[root@teacher-feng diff]# patch -R hujie.txt 

wKioL1NM3PHBjeOOAABzmt4veuU142.jpg

指导老师(湖南双星科技发展有限公司副总经理)冯德勇

网址:http://www.sxkeji.com.cn

电话:15874996921

QQ:695811769