Linux下创建Patch的方法

当在Linux下修改了某个文件(夹)之后,如果需要把修改的部分分享出去,可以使用diff命令来创建patch(补丁)文件.

在使用diff命令创建patch之前,我们需要修改之前的原始文件,和修改过的新文件.

当为一个文件创建patch的时候可以使用以下代码:
diff -Naru file_orig.c file_updated.c > file.patch

其中

  • -N 将缺失文件视为空
  • -a 将所有文件视为文本文件
  • -r 递归比较所有子文件夹
  • -u 输出行数(默认 3)行

 

当需要为整个文件夹创建patch的时候可以使用以下代码:
diff -crB dir_orig dir > dfile.patch

其中

  • -c 输出行数(默认 3)行
  • -r 递归比较所有子文件夹
  • -B 忽略连续的换行符

当你需要应用这个patch的时候可以运行
patch -p1 --dry-run < file.patch
其中参数-p[n]中的n值为需要跳过的目录数.

以/usr/src/linux为例:

若-p0就是不跳过任何目录,

-p1将跳过/,得到usr/src/linux,

-p2将跳过/usr,得到src/linux

绝大多数情况下这个值应该为1.

 

删除–dry-run当你满意输出到屏幕上的结果.