patch 的使用

最近在对Elastix文件做修改时,使用了diff和patch工具,记录下来备查。

创建目录结构如下:
patch
+---new
+-------libs
+-------modules
+-----------address_book
+-----------cdrreport
+-----------monitoring
+---old
+-------libs
+-------modules
+-----------address_book
+-----------cdrreport
+-----------monitoring
把将要打补丁的old文件放置到相应的目录下,把新的new文件放置到new目录的对应的目录下。
放置完毕后,切换到patch文件夹下执行命令:
diff -uNr old new > new.patch
执行完此命令后,会在patch目录下生成一个new.patch文件,这就是patch问价,也就是补丁文件,其中包含了新旧文件的差异。

给旧文件打补丁
切换到目录patch下,执行命令:patch -p0 < new.patch
此时补丁已打好,old目录内的文件就和new目录内的对应文件一样了。

 

追加:
diff的作用是用来比较两个文件的不同并记录下来,称为补丁文件。
diff的语法格式: 
diff [选项] 源文件(夹) 目的文件(夹)
有三个常用的选项:
-r 是一个递归选项,设置了这个选项, diff会将两个不同目录中所有对应文件依次进行比较,包括子目录文件;
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况;
-u 选项以一致的格式创建补丁文件,格式比缺省格式更紧凑些。

若只是对单个个文件创建补丁,可以使用命令:
diff -uN oldfile newfile > update.patch
打补丁:
patch -p0 < update.patch

你可能感兴趣的:(工具,patch)