linux diff/patch打补丁

一. 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

linux diff/patch打补丁

       

           2.在test1中打补丁(-p1 忽略第0层目录,即忽略最外层目录,从第一层目录开始)

patch -p1 < ../diff.patch

 linux diff/patch打补丁

      3.在test1中撤销补丁(-p1 忽略第0层目录,即忽略最外层目录,从第一层目录开始) 

patch -R -p1 < ../diff.patch

linux diff/patch打补丁

 

上一篇:RIP环回小实验


下一篇:最近做OLLVM控制流扁平化还原的一些体会