diff用法

在终端执行以下命令


diff -u ArrayTest.java ArrayTest.java.backup


-u 选项可以在diff结果中显示上下文信息。


--- ArrayTest.java  Tue Mar 11 16:01:12 2014
+++ ArrayTest.java.backup Tue Apr 22 15:37:37 2014
@@ -5,10 +5,10 @@

public class ArrayTest {
public static void main(String[] args) {
+ //
List list = Arrays.asList(1, 3, 5, 7, 9);
for (int i : list) {
System.out.println(i);
- list.remove(i);
}
}

第1,2两行是我们比较的两个文件以及他们的时间戳,并且分别用

---

+++来表示两个文件。


@@ -5,10 +5,10 @@是对下面比较结果的一个总结,

  1. -5,10表示比较内容对应于ArrayTest.java的第5行开始之后的10行。
  2. <span">+5,10表示比较内容对应于ArrayTest.java.backup的第5行开始之后的10行。

比较结果中开头符合的意义如下

  1. 空格两个文件一致
  2. +只有+++代表的文件中有
  3. -只有---代表的文件中有

patch用法

diff -u ArrayTest.java ArrayTest.java.backup < diff.txt


意思可以等同于

ArrayTest.java - ArrayTest.java.backup = diff.txt


如果执行

cp ArrayTest.java ArrayTest.java.backup之后,可以通过以下命令恢复
patch ArrayTest.java.backup < diff.txt <=> ArrayTest.java - diff.txt


反之可以通过

patch -R ArrayTest.java < diff.txt <=> ArrayTest.java.backup + diff.txt