Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux diff 命令。

1、命令简介

diff:用于比较文件的差异。

2、命令用法

diff [options] File1 File2 

3、命令描述

diff命令能比较单个文件或者目录内容。若比较文件,是以按行的方式,比较文本文件的差异。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录 。

4、命令选项

选项

描述

-<行数>

指定要显示多少行的文本。

此参数必须与-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

比较大文件时,可加快速度。

-I<字符或字符串>

--ignore-matching-lines<字符或字符串>

若两个文件在某几行有所不同,

而这几行同时都包含了选项中指定的字符或字符串,

则不显示这两个文件的差异。

-i

--ignore-case

不检查大小写的不同。

-l

--paginate

将结果交由pr程序来分页。

-n

--rcs

将比较结果以RCS的格式来显示。

-N

--new-file

在比较目录时,

若文件A仅出现在某个目录中,

预设会显示:

Only in目录:文件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参数时,

仅显示不同之处。

5、使用示例

1)比较两个文件

diff file1 file2

2)比较目录差异

diff -r src/ dst/

3)并排格式输出

diff file1 file2 -y -W 50

推荐文档