Linux补丁文件的生成与使用
程序员文章站
2022-05-10 20:58:55
...
在内核移植的时候,我们可能会经常遇到一些令人头疼的问题。例如:我刚刚修改完这个版本的内核源码,但是迫于种种理由又要使用更低或更高版本的内核,最令人头疼的就是又要需要修改源码。难道又要我们一个文件一个文件的去修改吗????可以肯定的说不需要!!!
-
diff命令使用
在Linux下我们可以使用diff命令来比较不同文件存在的差异或是同一文件不同版本之间存在的差异。例如:
已知file1.c和file2.c,我们想比较他们之间存在的差异:
cat file1.c //查看file1.c内容
cat file2.c //查看file2.c的内容
diff -Nuar file1.c file2.c
--- file1.c 2020-11-25 17:35:22.491934332 +0800 //---表示在file1.c文件中出现的内容
+++ file2.c 2020-11-25 17:35:33.776222964 +0800 //+++表示在file2.c文件中出现的内容
@@ -1,2 +1 @@
-hello //---表示在file1.c文件中出现的内容
-word //---表示在file1.c文件中出现的内容
+hello //+++表示在file2.c文件中出现的内容
-
生成补丁文件
我们在使用diff命令时,他会把两个文件的不同默认输出到标准输出也就时我们自己的屏幕。我们可以通过标准输出重定向把他输出到我们所需要的文件中,这样就可以生成我们所需要的补丁文件了。
diff -Nuar file1.c file2.c > file1.patch
-
使用补丁文件
我们都知道如果 C=A-B;那么我们只需要知道其中的任意两个数就可以推导出第三个数了。在这里也是一样,如果file2.c是原文件,file1.c是我们修改后的文件,如果我们想要通过补丁的方式了实现file2.c和file1.c文件的同步:
patch file2.c -p1 < file1.patch
注意:
1、如果补丁文件和目标文件在同一个文件夹下,则用-p1
2、如果补丁文件和目标文件在同一个文件夹下,则用-p0
上一篇: Shell入门基础
下一篇: 生成和合入patch的两种方式
推荐阅读
-
MySQL与MSSQl使用While语句循环生成测试数据的代码
-
C#使用ICSharpCode.SharpZipLib.dll进行文件的压缩与解压功能
-
VS2010中lib与dll文件的生成与使用方法
-
Linux文件的复制、删除和移动命令使用说明
-
C#使用GZipStream实现文件的压缩与解压
-
Linux改变文件或目录的访问权限命令使用说明(chmod命令)
-
MySQL与MSSQl使用While语句循环生成测试数据的代码
-
Linux系统递归生成目录中文件的md5的方法
-
C#使用GZipStream实现文件的压缩与解压
-
Android studio怎么使用git? 使用git查看本地与远程仓库文件的教程