欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux补丁文件的生成与使用

程序员文章站 2022-05-10 20:58:55
...

在内核移植的时候,我们可能会经常遇到一些令人头疼的问题。例如:我刚刚修改完这个版本的内核源码,但是迫于种种理由又要使用更低或更高版本的内核,最令人头疼的就是又要需要修改源码。难道又要我们一个文件一个文件的去修改吗????可以肯定的说不需要!!!

  • diff命令使用

在Linux下我们可以使用diff命令来比较不同文件存在的差异或是同一文件不同版本之间存在的差异。例如:

已知file1.c和file2.c,我们想比较他们之间存在的差异:

cat file1.c  //查看file1.c内容

Linux补丁文件的生成与使用

cat file2.c   //查看file2.c的内容

Linux补丁文件的生成与使用

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文件中出现的内容

Linux补丁文件的生成与使用

  • 生成补丁文件

我们在使用diff命令时,他会把两个文件的不同默认输出到标准输出也就时我们自己的屏幕。我们可以通过标准输出重定向把他输出到我们所需要的文件中,这样就可以生成我们所需要的补丁文件了。

diff -Nuar file1.c file2.c > file1.patch  

Linux补丁文件的生成与使用

Linux补丁文件的生成与使用

  • 使用补丁文件

我们都知道如果 C=A-B;那么我们只需要知道其中的任意两个数就可以推导出第三个数了。在这里也是一样,如果file2.c是原文件,file1.c是我们修改后的文件,如果我们想要通过补丁的方式了实现file2.c和file1.c文件的同步:

patch file2.c -p1 < file1.patch  

注意:

1、如果补丁文件和目标文件在同一个文件夹下,则用-p1 

2、如果补丁文件和目标文件在同一个文件夹下,则用-p0