命令行工具diff和patch使用简介

站在高处眺望 2020-06-06

diff 命令

diff命令在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作(如需比较,需要配合-r参数)。pathc制作过程中常用选项如下:

diff option 源文件(夹) 目的文件(夹) 
-r:递归,设置后diff会将两个不同版本源代码目录中的所有对应文件都进行一次比较,包括子目录文件; 
-N:确保补丁文件将正确地处理已经创建或删除文件的情况; 
-u:一体化diff输出
-E, -b, -w, -B, –strip-trailing-cr 
-p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称;
忽略各种空白,可参见文档,按需选用。

diff -bpurN from_file to_file > file.patch

patch 命令

patch命令被用于为开放源代码软件安装补丁程序。让用户利用设置修补文件的方式,修改,更新原始文件。如果一次仅修改一个文件,可直接在命令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。常用命令行如下:

patch -pN < file.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

patch –p1 < to-docu.patch

patch –R –p1 <to-docu. //取消补丁

相关推荐