Skip to content

Instantly share code, notes, and snippets.

@arrayadd
Last active May 24, 2017 03:52
Show Gist options
  • Save arrayadd/c90cb4a8523538ec0125a454dc458295 to your computer and use it in GitHub Desktop.
Save arrayadd/c90cb4a8523538ec0125a454dc458295 to your computer and use it in GitHub Desktop.
【Linux】文件又被人动了

在之前一篇文章《【Linux】配置文件貌似被人动了》中,说到过一种直观的比较两个文件的命令diff -y file1 file2 .今天再说一个也常用的,习惯的,易于接受的参数-u 该缩写来自单词 unified ['ju:nifaid] 统一,一致 即命令diff -u file1 file2,少啰嗦,看命令示例:

下面,先看要比较的两个文件的内容:

[work]$ cat ./test1.txt 
111
222
331
555
[work]$ cat ./test2.txt 
111
222
333
444

下面,看比较的结果:

[work]$ diff -u ./test1.txt ./test2.txt 
--- ./test1.txt	2017-05-24 11:11:15.899609429 +0800
+++ ./test2.txt	2017-05-24 11:11:33.326970268 +0800
@@ -1,4 +1,4 @@
 111
 222
-331
-555
+333
+444

如果你常用git 就会发现比较结果和git非常相似。 其中前两行说的是两个文件的基本信息,文件名,创建时间。 ---表示变动前的文件,也就是第一个文件, +++表示变动后的文件。

接着第三行,被前后@@包起来的部分-1,4 +1,4 表示后面内容展示的是,第一个文件的1至4行,及第二个文件的1至4行。

接着从第四行开始剩下的部分,也就是真正的内容比较结果展示部分。每行前面的-表示删除的行,+表示新增的行。当然这里的删除新增都是从两个文件的比较(其实就是合并)结果的角度来说的。 说道这里,那被修改的一行怎么表示呢?其实修改就相当于删除+新增。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment