diff
逐行比较两个文本文件,把文件的差异显示到标准输出。如果要指定要比较目录,那么diff命令会比较目录中相同文件名的文件,不会比较子目录。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
diff [选项] files
2、选项列表
选项 | 说明 |
-v | --version | 显示命令版本信息 |
--help | 显示帮助文档 |
-m | --mode=MODE | 设置目录的权限 |
-i | --ignore-case | 比较的时候,忽略大小写 |
--ignore-file-name-case | 在比较文件名的时候,忽略大小写 |
--no-ignore-file-name-case | 比较文件名的时候,不能忽略大小写 |
-E | --ignore-tab-expansion | 不比较tab |
-b | --ingore-space-change | 不比较空格数 |
-w | --ignore-all-space | 忽略所有的空格 |
-B | --ignore-blank-lines | 不比较空白行 |
-I res | --ignore-mathcing-lines=res | 不比较含有指定字符串res的行 |
--strip-trailing-cr | 出去输入行尾随的东西 |
-a | --text | 将所有的文件都当做文本文件 |
-c -C NUM --context[=NUM] | 显示不同之处的前后部分内容,默认是3行 |
-u -U NUM --unified[=NUM] | 显示相同之处的前后部分内容,默认是3行 |
--label LABEL | 使用文件的标签,而不是名字 |
-p | --show-c-function | 比较c语言文件的时候,显示不同之处所在的函数 |
-F RE | --show-function-line=RE | 显示匹配RE的最近的行 |
-q | --brief | 只显示是否有差异,不显示详细内容 |
-e | --ed | 输出一个ed脚本 |
--normal | 输出一个正常的diff |
-n | --rcs | 结果以rcs的方式显示 |
-y | --side-by-side | 将两个文件已并列方式显示比较结果 |
-W num | --width=NUM | 使用“-y”选项的时候,指定列宽 |
--left-column | 只输出公共行的左列 |
--suppress-common-lines | 不要输出公共行 |
-D NAME | --ifdef=NAME | 输出合并文件以显示‘#ifdef NAME’的差异 |
--GTYPE-group-format=GFMT | 同上,但用GFMT格式化GTYPE输入组 |
--line-format=LFMT | 同上,但用LFMT格式化GTYPE输入组 |
--LTYPE-line-format=LFMT | 同上,但用LFMT格式化LTYPE输入行 |
-l | --paginate | 将输出传递给pr”以分页 |
-t | --expand-tabs | 将制表符展开为输出中的空格 |
-T | --initial-tab | 通过预置选项卡使制表符对齐 |
-N | --new-file | 将缺席文件视为空文件 |
--unidirectional-new-file | 将缺席的第一批文件视为空文件 |
-s | --report-identical-files | 当两个文件相同时报告 |
-X FILE | --exclude-from=FILE | 排除与文件中任何模式匹配的文件 |
-S FILE | --starting-file=FILE | 从文件开始比较目录时 |
-r | --recursive | 用递归的方式比较子目录下的所有文件 |
-x path | 不比较指定的文件 |
--from-file=FILE1 | 将FILE 1与所有操作数进行比较。FILE 1可以是一个目录 |
--to-file=FILE2 | 将所有操作数与文件2进行比较。文件2可以是一个目录 |
--horizon-lines=NUM | 保持通用前缀和后缀的NUM行 |
-d --minimal | 努力找出一组较小的变更 |
--speed-large-files | 假设文件很大,并且有许多零散的小更改。 |
3、实例
1)比较两个文件,不使用参数 (两个文件只有第一行不同)
|
2)使用选项-y,以分列的方式输出两个文件
|
3)使用选项-W,指定列宽
|
4)比较目录
|
5)使用选项-q,查看是否不同
|