|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
买一本命令参考手册是必要的,遇到不知道怎么用的命令可以随时查询,这要比查man文档快.特别适合英语不好。
diff命令是linux上十分主要的工具,用于对照文件的内容,出格是对照两个版本分歧的文件以找到修改的中央。diff在命令行中打印每个行的修改。最新版本的diff还撑持二进制文件。diff程序的输入被称为补钉(patch),由于Linux体系中另有一个patch程序,能够依据diff的输入将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本把持工具不成或缺的一部分。
1.命令格局:
diff[参数][文件1或目次1][文件2或目次2]
2.命令功效:
diff命令能对照单个文件大概目次内容。假如指定对照的是文件,则只要当输出为文本文件时才无效。以逐行的体例,对照文本文件的异同处。假如指定对照的是目次的的时分,diff命令会对照两个目次下名字不异的文本文件。列出分歧的二进制文件、大众子目次和只在一个目次呈现的文件。
3.命令参数:
- 指定要显现几行的文本。此参数必需与-c或-u参数一并利用。
-a或--text diff预设只会逐行对照文本文件。
-b或--ignore-space-change 不反省空格字符的分歧。
-B或--ignore-blank-lines 不反省空缺行。
-c 显现全体内文,并标出分歧的地方。
-C或--context 与实行"-c-"指令不异。
-d或--minimal 利用分歧的演算法,以较小的单元来做对照。
-D或ifdef 此参数的输入格局可用于前置处置器巨集。
-e或--ed 此参数的输入格局可用于ed的script文件。
-f或-forward-ed 输入的格局相似ed的script文件,但依照本来文件的按次来显现分歧处。
-H或--speed-large-files 对照年夜文件时,可加速速率。
-l或--ignore-matching-lines 若两个文件在某几行有所分歧,而这几行同时都包括了选项中指定的字符或字符串,则不显现这两个文件的差别。
-i或--ignore-case 不反省巨细写的分歧。
-l或--paginate 将了局交由pr程序来分页。
-n或--rcs 将对照了局以RCS的格局来显现。
-N或--new-file 在对照目次时,若文件A仅呈现在某个目次中,预设会显现:Onlyin目次:文件A若利用-N参数,则diff会将文件A与一个空缺的文件对照。
-p 若对照的文件为C言语的程序码文件时,显现差别地点的函数称号。
-P或--unidirectional-new-file 与-N相似,但只要当第二个目次包括了一个第一个目次所没有的文件时,才会将这个文件与空缺的文件做对照。
-q或--brief 仅显现有没有差别,不显现具体的信息。
-r或--recursive 对照子目次中的文件。
-s或--report-identical-files 若没有发明任何差别,仍旧显现信息。
-S或--starting-file 在对照目次时,从指定的文件入手下手对照。
-t或--expand-tabs 在输入时,将tab字符睁开。
-T或--initial-tab 在每行后面加上tab字符以便对齐。
-u,-U或--unified= 以兼并的体例来显现文件内容的分歧。
-v或--version 显现版本信息。
-w或--ignore-all-space 疏忽全体的空格字符。
-W或--width 在利用-y参数时,指定栏宽。
-x或--exclude 不对照选项中所指定的文件或目次。
-X或--exclude-from 您能够将文件或目次范例存成文本文件,然后在=中指定此文本文件。
-y或--side-by-side 以并列的体例显现文件的异同的地方。
--help 显现匡助。
--left-column 在利用-y参数时,若两个文件某一行内容不异,则仅在左边的栏位显现该行内容。
--suppress-common-lines 在利用-y参数时,仅显现分歧的地方。
4.利用实例:
实例1:对照两个文件
命令:
输入:
[root@localhosttest3]#difflog2014.loglog2013.log
3c3
<2014-03
---
>2013-03
8c8
<2013-07
---
>2013-08
11,12d10
<2013-11
<2013-12
申明:
下面的“3c3”和“8c8”暗示log2014.log和log20143log文件在3行和第8行内容有所分歧;"11,12d10"暗示第一个文件比第二个文件多了第11和12行。
diff的normal显现格局有三种提醒:
a-add
c-change
d-delete
实例2:并排格局输入
命令:
difflog2013.loglog2014.log-y-W50
输入:
[root@localhosttest3]#difflog2014.loglog2013.log-y-W50
2013-012013-01
2013-022013-02
2014-03|2013-03
2013-042013-04
2013-052013-05
2013-062013-06
2013-072013-07
2013-07|2013-08
2013-092013-09
2013-102013-10
2013-11<
2013-12<
[root@localhosttest3]#difflog2013.loglog2014.log-y-W50
2013-012013-01
2013-022013-02
2013-03|2014-03
2013-042013-04
2013-052013-05
2013-062013-06
2013-072013-07
2013-08|2013-07
2013-092013-09
2013-102013-10
>2013-11
>2013-12
申明:
“|”暗示前后2个文件内容有分歧
“<”暗示前面文件比后面文件少了1行内容
“>”暗示前面文件比后面文件多了1行内容
实例3:高低文输入格局
命令:
difflog2013.loglog2014.log-c
输入:
[root@localhosttest3]#difflog2013.loglog2014.log-c
***log2013.log2012-12-0716:36:26.000000000+0800
---log2014.log2012-12-0718:01:54.000000000+0800
***************
***1,10****
2013-01
2013-02
!2013-03
2013-04
2013-05
2013-06
2013-07
!2013-08
2013-09
2013-10
---1,12----
2013-01
2013-02
!2014-03
2013-04
2013-05
2013-06
2013-07
!2013-07
2013-09
2013-10
+2013-11
+2013-12[root@localhosttest3]#difflog2014.loglog2013.log-c
***log2014.log2012-12-0718:01:54.000000000+0800
---log2013.log2012-12-0716:36:26.000000000+0800
***************
***1,12****
2013-01
2013-02
!2014-03
2013-04
2013-05
2013-06
2013-07
!2013-07
2013-09
2013-10
-2013-11
-2013-12
---1,10----
2013-01
2013-02
!2013-03
2013-04
2013-05
2013-06
2013-07
!2013-08
2013-09
2013-10[root@localhosttest3]#
申明:
这类体例在开首两行作了对照文件的申明,这里有三中特别字符:
“+”对照的文件的后者比前着多一行
“-”对照的文件的后者比前着少一行
“!”对照的文件二者有不同的行
实例4:一致格局输入
命令:
difflog2014.loglog2013.log-u
输入:
[root@localhosttest3]#difflog2014.loglog2013.log-u
---log2014.log2012-12-0718:01:54.000000000+0800
+++log2013.log2012-12-0716:36:26.000000000+0800
@@-1,12+1,10@@
2013-01
2013-02
-2014-03
+2013-03
2013-04
2013-05
2013-06
2013-07
-2013-07
+2013-08
2013-09
2013-10
-2013-11
-2013-12
申明:
它的第一部分,也是文件的基础信息:
---log2014.log2012-12-0718:01:54.000000000+0800
+++log2013.log2012-12-0716:36:26.000000000+0800
"---"暗示变化前的文件,"+++"暗示变化后的文件。
有些人号称用过十几种甚至几十种linux,向人谈论起来头头是到,好像懂的很多。 |
|