千家信息网

Linux基础命令diff的用法

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Linux基础命令diff的用法",在日常操作中,相信很多人在Linux基础命令diff的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Linux
千家信息网最后更新 2026年11月01日Linux基础命令diff的用法

这篇文章主要介绍"Linux基础命令diff的用法",在日常操作中,相信很多人在Linux基础命令diff的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"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 //只显示是否相同,不显示详细不同之处

到此,关于"Linux基础命令diff的用法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

文件 目录 输出 命令 两个 差异 文本 标准 不同 相同 文件名 方式 时候 范围 适用范围 基础 内容 学习 输入 大小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技深圳 关于新基建和互联网科技 杭州互联网科技公司 宜安科技 互联网金融 广州互联网络科技有限公司 汇久创客互联网科技 华服互联网科技官网 来此购互联网科技有限公司 晓花互联网科技有限公司网址 高科技互联网套路 互联网金融科技元年 每天都有哪些好的互联网科技 江苏苏星互联网科技有限公司 黑云互联网科技有限公司 世界互联网科技成果奖 互联网科技和医药行业 互联网科技自媒体灵感 互联网科技创业有什么好项目 高科技和互联网的现代国家 互联网科技快速发展优美句子 南京欣网互联网络科技 科技股互联网 中国 科技 互联网 港股科技和互联网 语蝶互联网科技有限公司 新氧科技和美国互联网有关系吗 互联网公司属于科技吗 长沙渺峰互联网科技有限公司 美国五大互联网科技公司市值多少 杭州融税互联网科技有限公司
0