diff
diff具有比较功能。可以使用man命令查看其使用方法。
NAME
diff - compare files line by line
SYNOPSIS
diff [OPTION]... FILES
常用选项:
-r 是一个递归选项
-N 确保命令正确执行,文件不存在视为空
-u 使用统一格式
patch
patch 用来打补丁。
NAME
patch - apply a diff file to an original
SYNOPSIS
patch [options] [originalfile [patchfile]]
but usually just
patch -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