首页 > 代码库 > diff和patch命令简介

diff和patch命令简介

diff -u 1.txt 2.txt > diff.txt

-u: 使差异输出带有上下文。

 1 --- 1.txt       2017-01-21 07:09:19.015472013 -0500
2 +++ 2.txt 2017-01-21 07:11:26.385045822 -0500
3 @@ -5,9 +5,9 @@
4 全拼,双拼
5 还是五笔
6
7 -是人就有可能犯错,软件更是如此。
8 -
9 -犯了错,就要扣工资!
10 -
11 +诗人就有可能犯错,软件更是如此。
12
13 改正的成本可能会很高。
14 +
15 +但是“只要眼球足够多,所有Bug都好捉”,
16 +这就是开源的哲学之一。

diff文件:

  • (—)开始的行标识的是原始文件
  • (+++)开始的行标识的是目标文件
  • (-)开始的行是只出现在原始文件中的行
  • (+)开始的行是只出现在目标文件中的行
  • 空开始的行是在原始文件和目标文件中都出现的行
  • (@@)标识差异小节
  • (-5,9)表示本差异小节是原始文件从第5行开始的9行
  • (+5,9)表示本差异小节是目标文件从第5行开始的9行

有了diff.txt,2.txt就可以放心的删除,然后用1.txt和diff.txt恢复2.txt。

用1.txt和diff.txt恢复2.txt

patch 1.txt <diff.txt

用2.txt和diff.txt恢复1.txt

patch -R 2.txt <diff.txt

diff和patch命令简介