diff和patch是linux下常用的命令,diff用来把两个文件的差异形成一个文件,而patch用diff输出的文件作为输入,可以实现版本的升级(打补丁)。下面简单介绍diff和patch的用法。
补丁。
一、单个文件
diff -uN from_file(源文件) to_file(目的文件) >to_file.patch
patch -p0 <to_file.patch
patch -RE -p0< to_file.patch
二、多个文件
diff -uNr from_docu(源文件夹) to_docu(目的文件夹) >to_docu.patch
cd dir(dir为from_docu的路径,进入from_docu目录)
patch -p1 <to_docu.patch
patch -R -p1<to_docu.patch
-r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况。
-u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
-R可以去除补丁,恢复旧版本
-p0 选项要从当前目录查找目的文件(夹)
-p1 选项要忽略掉第一层目录,从当前目录开始查找
(-p<剥离层级>或--strip=<剥离层级> 设置欲剥离几层路径名称,即patch文件首行指明了路径,根据当前所在目录,略去patch文件的前几级目录)