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)比较两个文件,不使用参数 (两个文件只有第一行不同)
[root@localhost test02]# diff 1.c 2.c //直接比较,这里只输出不同之处
1c1
< 逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。
---
> 逐行比较两个文本文件,把文件的差异显示到标准输出。
2)使用选项-y,以分列的方式输出两个文件
[root@localhost test02]# diff -y 1.c 2.c //使用选项y,这里以列的方式,显示文件全部内容
逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。 | 逐行比较两个文本文件,把文件的差异显示到标准输出。
如果要指定要比较目录,那么diff命令会比较目录中相同文件名的文 如果要指定要比较目录,那么diff命令会比较目录中相同文件 名的文
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUS 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUS
[root@localhost test02]# diff 1.c 2.c
3)使用选项-W,指定列宽
[root@localhost test02]# diff -y -W 100 1.c 2.c //这里指定列宽100,并不能完全显示,因此看不到差异之处
逐行比较两个文本文件,把文件的差异显示到标准 | 逐行比较两个文本文件,把文件的差异显示到标准
如果要指定要比较目录,那么diff命令会比较目录 如果要指定要比较目录,那么diff命令会比较目录
此命令的适用范围:RedHat、RHEL、Ubuntu、CentO 此命令的适用范围:RedHat、RHEL、Ubuntu、CentO
4)比较目录
[root@localhost weijie]# diff test01 test02 //这里只比较目录下相同名字的文件
diff test01/1.c test02/1.c
1c1
< 逐行比较两个文本文件,把文件的差异显示到标准输出。
---
> 逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。
5)使用选项-q,查看是否不同
[root@localhost weijie]# diff -q test01/1.c test02/1.c //比较是否不同
Files test01/1.c and test02/1.c differ //只显示是否相同,不显示详细不同之处
逐行比较两个文本文件,把文件的差异显示到标准输出。如果要指定要比较目录,那么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)比较两个文件,不使用参数 (两个文件只有第一行不同)
[root@localhost test02]# diff 1.c 2.c //直接比较,这里只输出不同之处
1c1
< 逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。
---
> 逐行比较两个文本文件,把文件的差异显示到标准输出。
2)使用选项-y,以分列的方式输出两个文件
[root@localhost test02]# diff -y 1.c 2.c //使用选项y,这里以列的方式,显示文件全部内容
逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。 | 逐行比较两个文本文件,把文件的差异显示到标准输出。
如果要指定要比较目录,那么diff命令会比较目录中相同文件名的文 如果要指定要比较目录,那么diff命令会比较目录中相同文件 名的文
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUS 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUS
[root@localhost test02]# diff 1.c 2.c
3)使用选项-W,指定列宽
[root@localhost test02]# diff -y -W 100 1.c 2.c //这里指定列宽100,并不能完全显示,因此看不到差异之处
逐行比较两个文本文件,把文件的差异显示到标准 | 逐行比较两个文本文件,把文件的差异显示到标准
如果要指定要比较目录,那么diff命令会比较目录 如果要指定要比较目录,那么diff命令会比较目录
此命令的适用范围:RedHat、RHEL、Ubuntu、CentO 此命令的适用范围:RedHat、RHEL、Ubuntu、CentO
4)比较目录
[root@localhost weijie]# diff test01 test02 //这里只比较目录下相同名字的文件
diff test01/1.c test02/1.c
1c1
< 逐行比较两个文本文件,把文件的差异显示到标准输出。
---
> 逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。
5)使用选项-q,查看是否不同
[root@localhost weijie]# diff -q test01/1.c test02/1.c //比较是否不同
Files test01/1.c and test02/1.c differ //只显示是否相同,不显示详细不同之处