逐行比较文件
命令语法格式
diff [OPTION]… FILES
命令描述
逐行比较FILES的内容。
参数FILES是’FILE1 FILE2’或’DIR1 DIR2’或’DIR FILE’或’FILE DIR’。如果给出–from-file或–to-file,则对FILE(S)没有限制。如果FILE是’-‘,则读取标准输入。
命令支持的选项及含义
需要提供给长选项的参数也需要提供给对应的短选项。
–normal
输出正常的比较结果(默认值)
-q, –brief
仅在文件不同时进行报告。
-s, –report-identical-files
在两个文件相同时,进行报告。
-c, -C NUM, –context[=NUM]
为文件的不同之处输出上下文的行,默认为“3”行。
-u, -U NUM, –unified[=NUM]
输出统一上下文的NUM行。参数NUM默认为“3”。
-e, –ed
输出ed脚本。
-n, –rcs
输出RCS格式的比较结果。
-y, –side-by-side
输出两列。
-W, –width=NUM
输出最多NUM(默认130)打印列
–left-column
仅在左侧输出公共行。
–suppress-common-lines
不要输出公共行。
-p, –show-c-function
显示每个变化所在的C函数。
-F, –show-function-line=RE
显示匹配RE的最近行
–label LABEL
使用LABEL,而不是文件名和时间戳(可以重复)
-t, –expand-tabs
在输出中,将制表符转化为空格。
-T, –initial-tab
通过添加制表符使标签对齐。
–tabsize=NUM
每NUM个打印列为一个TAB位。默认为“8”。
–suppress-blank-empty
在空输出行之前,抑制空格或制表符
-l, –paginate
将输出传递给’pr’,以对其进行分页。
-r, –recursive
递归地比较找到的所有子目录。
–no-dereference
不要解析符号链接。
-N, –new-file
将缺失的文件视为内容为空的文件。
–unidirectional-new-file
将缺失的第一个文件视为内容为空的文件。
–ignore-file-name-case
当比较文件名时忽略大小写。
–no-ignore-file-name-case
比较文件名时,不要忽略大小写。
-x, –exclude=PAT
排除匹配PAT的文件。
-X, –exclude-from=FILE
与-x(–exclude)类似,只不过是从文件FILE中读取PAT。
-S, –starting-file=FILE
当比较目录是,以文件FILE为开始。
–from-file=FILE1
将FILE1与所有操作数进行比较;FILE1可以是目录。
–to-file=FILE2
将所有的操作数与FILE2进行比较;FILE2可以是一个目录。
-i, –ignore-case
比较文件内容时,忽略大小写。
-E, –ignore-tab-expansion
忽略由TAB转义引起的内容不同。
-Z, –ignore-trailing-space
忽略行为的空格。
-b, –ignore-space-change
忽略空白数量的变化
-w, –ignore-all-space
忽略所有空格的变行。
-B, –ignore-blank-lines
忽略所有空白行的变化。
-I, –ignore-matching-lines=RE
忽略所有匹配RE的行的变化。
-a, –text
将所有的文件视为普通的文本文件。
–strip-trailing-cr
在输出中,截掉所有的回车符号(CR)
-d, –minimal
努力寻找一个很小的变化集。
–horizon-lines=NUM
保留共同前缀和后缀的NUM行。
–speed-large-files
假设是大文件,并存在许多分散的小变化。
-D NAME, –ifdef=NAME
使用带有“#ifdef NAME”差异来输出合并文件
精细化地控制输出行
–GTYPE-group-format=GFMT
使用GFMT格式来格式化GTYPE格式的输入组。
–line-format=LFMT
使用LFMT格式来格式化所有的输入行。
–LTYPE-line-format=LFMT
使用LFMT格式来格式化LTYPE类型的输入行。
下面这些格式选项提供了对diff输出的细粒度控制,泛化-D/–ifdef:
LTYPE:’old’、’new’、’unchanged’。
GTYPE:“LTYPE”、“changed”。
GFMT(only):
LFMT(only):
GFMT and LFMT:
注意选项里的LTYPE与LTYPE为参数变量,不是固定的选项。
彩色输出
–color[=WHEN]
彩色化输出结果。参数WHEN的取值为’never’、’always’、’auto’。其中,”auto“为默认值。
–palette=PALETTE
当使用–color选项时,该选项参数PALETTE指定了要使用的颜色。参数PALETTE是以冒号分隔的列表terminfo功能。
其他选项
–help
显示帮助信息并退出。
-v, –version
显示版本信息。
退出状态
0 输入文件相同
1 输入文件存在不同(手册中说存在不同退出是“2”。经测试是“1”)
2 存在其他问题
相关手册
wdiff(1), cmp(1), diff3(1), sdiff(1), patch(1)
查看Info手册:info diff
参考文献
- man 1 diff, Version 13.5-3
- GNU/GNU Diffutils/13 Invoking diff
更新日志
- 08/07/2018 创建文章