当在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当你满意输出到屏幕上的结果.