diff
这是LINUX上一个及其常用但又功能较为繁复的指令,作为新手,很可能被搞懵。
这里我只给出一两种常规的入门用法。
如果想深入了解,文章下面有链接地址,也
可以找man(如果你英文好的话)。
1.定义:
diff - 以每一行的方式比较两个文件;
简而言之就是,两份文件,每一行每一行的来比较,有不同的就以某种方式显示出来。
diff 命令用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。
diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件(在Linux还有cmp指令,这是专门用来比较二进制文件的指令)。diff是svn、cvs、git等版本控制工具不可或缺的一部分。
diff命令能比较单个文件或者目录内容。
以逐行的方式,比较文本文件的异同处。
如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。
2.使用实例
普通比较输出
root@ubuntu:~/temp# diff client.c Sockt/client.c
31d30
< printf("hhe\n");
57d55
< /* hread */
root@ubuntu:~/temp#
31d30:
表示client.c文件中的31行和Sockt/client.c文件中的30行不同;
< 表示client.c文件中这一行的内容; >表示Sockt/client.c中这一行的内容;
这里表示client.c比Sockt/client.c文件多了一行内容。
一般如果是两个文件不同的行,就会用---
隔开:
root@ubuntu:~/temp# diff client.c Sockt/client.c
19c19
< #define SERVER_PORT 1400
---
> #define SERVER_PORT 14000
31d30
< printf("hhe\n");
57d55
< /* hread */
diff 的normal 显示格式有三种提示:
a - add
c - change
d - delete
并排格式输出
root@ubuntu:~/temp# diff client.c Sockt/client.c -y -W 50
/******************** /********************
> File Name: > File Name:
> Author: Yin > Author: Yin
> Com: Hi-tar > Com: Hi-tar
> Created Tim > Created Tim
******************** ********************
#include<stdio.h> #include<stdio.h>
#include<stdlib.h> #include<stdlib.h>
#include<string.h> #include<string.h>
#include<netinet/in.h #include<netinet/in.h
#include<sys/types.h> #include<sys/types.h>
说明:
“|”表示前后2个文件内容有不同
“<”表示后面文件比前面文件少了1行内容
“>”表示后面文件比前面文件多了1行内容
50:这个数指的是打印结构整个一行又50个字符:
#include<stdio.h> #include<stdio.h>
-y或–side-by-side 以并列的方式显示文件的异同之处。
-W或–width 在使用-y参数时,指定栏宽。
diff3
diff3 - 以每一行的方式比较三个文件;
root@ubuntu:~/temp# diff3 stoc.c putc.c getc.c
====3
1:6c
2:6c
文件名称:putc.c
3:6c
文件名称:getc.c
====3
1:10c
2:10c
Created Time: 2017年11月07日 星期二 21时42分34秒
3:10c
Created Time: 2017年11月08日 星期三 17时03分50秒
====3
1:19c
2:19c
int j;
3:18a
root@ubuntu:~/temp#
第3个文件盒另外两个文件不同
转载地址:http://www.cnblogs.com/peida/archive/2012/12/12/2814048.html