这又是一个文件比较命令,熟练掌握会节省你很多工作。还记得comm命令吗?diff比他更加复杂,好用,不仅能比较文件,还能比较目录。 当一个文件有多个版本时候,或者更多复杂的文件,目录比较时,你会期望有一个比comm更有用的命令,diff正是为此而生。
全称:different file
实例:
文件1: v1.txt
代码如下:
hello
world v1_echo
v1_diff
v1_comm
shell is easy!
文件2: v2.txt
代码如下:
hello world!
v2_echo
v1_diff
easy shell!
1.普通比较:
$diff v1.txt v2.txt
代码如下:
1,2c1,2
< hello world
< v1_echo
---
> hello world!
> v2_echo
4c4
< v1_comm
---
> easy shell!
列出比较的区别,数字为行数,c是compare
2.一体化输出:
$diff -u v1.txt v2.txt > version.patch
代码如下:
-v1_echo
+hello world!
+v2_echo
v1_diff
-v1_comm
+easy shell!
shell is easy!
"+"表示补充的行,"-"表示删去的行
3. 更新覆盖v1.txt,注意这里借用了patch
$patch –p1 v1.txt< version.patch
4. 比较v1,v2文件,仅输出v2的变化
$diff -e v1.txt v2.txt
代码如下:
4c
easy shell!
.
1,2c
hello world!
v2_echo
.
5.比较目录
借用书上一段解释:
-N 将所有确实的文件视为空文件
-a 将所有文件市委文件文本
-u 生成一体化输出
-r 遍历目录下的所有文件
比较两个目录下所有文本信息
$diff –Naur directory1 directory2
除非你确定这两个目录基本相同,不然不推荐这么用。
6.工作疲劳后,尤其同时做很多事情的时候,会忘了有没有做过上传,或者修改某个目录下的文件。可以这样:
$diff v1.txt /${dir}
直接比较同名文件,高强度下的工作者相信真有体会。
解读下—help
太长,截取少部分解读一下。
代码如下:
Mandatory arguments to long options are mandatory for short options too.
--normal output a normal diff (the default)
-q, --brief report only when files differ
新闻热点
疑难解答