Linux基础命令---diff

简介:
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                         //只显示是否相同,不显示详细不同之处
相关文章
|
23天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
135 6
|
24天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
65 3
|
24天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
60 2
|
1月前
|
缓存 监控 Linux
|
1月前
|
Linux Shell 数据安全/隐私保护
|
1月前
|
域名解析 网络协议 安全
|
18天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
57 3
|
2月前
|
运维 监控 网络协议
|
2月前
|
监控 Linux Shell
|
24天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
64 3