一. diff 命令
diff 比较两个文件或文件集合的差异,并记录下来,生成一个diff文件,就是patch文件,即补丁文件。
常接选项:
(1) -N --new-file 文件和文件对比的时候,如果没有,就拿一个空文件和别的文件进行对比
(2) -r --recursive 递归对比
(3) -u 按照统一的格式显示
二. patch命令
patch用于根据源文件和补丁文件生成目标文件。
-p0 从当前目录打补丁
-p1 忽略到第1层目录,开始打补丁 (推荐使用) 需要进入文件夹
-p2 忽略到前2层目录,开始打补丁
-p3 忽略到前3层目录,开始打补丁
依次类推
其实就是去掉几个/前面的内容(补丁文件里的路径里的/)
-R 撤销补丁
三.使用案例
1. 对两个目录内的文件递归对比,生成补丁文件 diff.patch
diff -Nur test1 test2 >> diff.patch
2.在test1中打补丁(-p1 忽略第0层目录,即忽略最外层目录,从第一层目录开始)
patch -p1 < ../diff.patch
3.在test1中撤销补丁(-p1 忽略第0层目录,即忽略最外层目录,从第一层目录开始)
patch -R -p1 < ../diff.patch