diff
diff具有比较功能。可以使用man命令查看其使用方法。
NAMEdiff - compare files line by lineSYNOPSISdiff [OPTION]... FILES
常用选项:
-r 是一个递归选项
-N 确保命令正确执行,文件不存在视为空
-u 使用统一格式
patch
patch 用来打补丁。
NAMEpatch - apply a diff file to an originalSYNOPSISpatch [options] [originalfile [patchfile]]but usually justpatch -pnum <patchfile
-pnum:
-p0 根据补丁中完整路径查找要打补丁的文件
-p1忽略第一层目录
……
简单的例子
源文件
./file1.c#include <stdio.h>int main(){printf("This is version 1! ");return 0;}
新文件:
./file2.c#include <stdio.h>int main(){printf("This is version 2! ");return 0;}
比较两个文件,生成patch
$ diff -uN file1.c file2.c >> file.patch
打上补丁:
$ patch -p0 < file.patch
此时file1.c的内容变变成file2.c的内容
如果两个文件在不同目录,比如一个在remote,一个在local目录
则
$ diff -uN Remote/file1.c Local/file2.c >> file.patch//在file.patch目录下$ patch -p0 < file.patch