Linux补丁文件操作
进行打补丁操作。
一、diff生成补丁
1、对单个文件生成补丁
diff -up example_orig.c example_new.c > mypatch
参数详解:
-u 显示有差异行的前后几行(上下文), 默认是前后各3行, 这样, patch中带有更多的信息.
-p 显示代码所在的c函数的信息.
其中example_orig.c为原始文件,example_new.c为修改后的文件,mypatch为生成的补丁文件。
2、对文件夹内多文件生成补丁
diff -uprN example_orig/ example_new/ > mypatc
参数详解:
-r 递归地对比一个目录和它的所有子目录(即整个目录树).
-N 如果某个文件缺少了, 就当作是空文件来对比. 如果不使用本选项, 当diff发现旧代码或者新代码缺少
文件时,只简单的提示缺少文件. 如果使用本选项, 会将新添加的文件全新打印出来作为新增的部分.
此命令对比了example_orig/和example_new/ 两个目录下的所有源码差异.
二、patch打补丁
生成的补丁中, 包含了路径信息,打补丁时,要进入补丁文件路径信息表示的根目录, 并且告诉patch工
具,请忽略补丁中的路径的第一级目录(参数-p1)。
patch -p1 < mypatch.diff
对linux内核源码打生成补丁,然后再打补丁,见如下:
diff -uparN linux_orig/ linux_new/ > mypatch
cd linux_orig
patch -p1 < mypatch