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命令会比较目录中相同文件名的文

此命令的适用范围:RedHatRHELUbuntuCentOSSUSEopenSUS            此命令的适用范围:RedHatRHELUbuntuCentOSSUSEopenSUS

[root@localhost test02]# diff  1.c 2.c

3)使用选项-W,指定列宽

[root@localhost test02]# diff -y -W 100 1.c 2.c     //这里指定列宽100,并不能完全显示,因此看不到差异之处

逐行比较两个文本文件,把文件的差异显示到标准      |   逐行比较两个文本文件,把文件的差异显示到标准

如果要指定要比较目录,那么diff命令会比较目录         如果要指定要比较目录,那么diff命令会比较目录

此命令的适用范围:RedHatRHELUbuntuCentO    此命令的适用范围:RedHatRHELUbuntuCentO

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的更多相关文章

  1. linux基础命令:

    linux基础命令: 显示 echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md ...

  2. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  3. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  4. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  5. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

  6. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  7. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  8. Linux基础命令-文件与目录

    Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...

  9. Linux基础命令回顾

    前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...

随机推荐

  1. 如何使QLineEdit禁止编辑

    在写程序的时候喜欢使用QLineEdit,用来显示打开文件的路径.但是很不喜欢被编辑.那么要怎么设置不可编辑呢. (1)调用lineEdit->setEnabled(False) #不可编辑了 ...

  2. LCA最近公共祖先(least common ancestors)

    #include"stdio.h" #include"string.h" #include"iostream" #include" ...

  3. DevOps之持续交付

    持续交付 持续交付是一种可以帮助团队以更短的周期交付软件的方法,该方法确保了团队可以在任何时间发布出可靠的软件.该方法意在以更快速度更高频率进行软件的构建.测试和发布. 通过对生产环境中的应用程序进行 ...

  4. Java-01-问题解答

    问题一:Java类文件是否只能有一个公有类? 1测试代码: //信1603 李敦岳 20163520 //测试Java是否只能有一个公有类 //2017.10.2 public class Test ...

  5. ELK之收集tomcat访问日志

    把tomcat访问日志转换成json格式然后收集 修改配置文件conf/server.xml把日志输出改成json格式 添加logstash配置文件(日志按天切割可以使用*进行匹配所有)

  6. SQL Fundamentals:Restricting and Sorting Data限制和排序数据(FROM-WHERE-SELECT-ORDER BY)

    SQL Fundamentals || Oracle SQL语言 控制操作的显示列:基本的SELECT语句 控制行:限定查询和排序显示 分组统计查询 限定查询:WHERE字句 排序显示:ORDER B ...

  7. 详解Oracle多种表连接方式

    1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 3. 自连接(同一张表内的连接) SQL的标准语 ...

  8. <!DOCTYPE html>有什么用?

    <!DOCTYPE html> 是文档声明,必须放在文档第一行,它的作用就是告诉浏览器以哪个html版本来解析你的html代码.当你不写声明的时候,浏览器就会以自己的怪异模式来解析你的ht ...

  9. [python]去掉 unicode 字符串前面的 u(转)

    add by zhj: 其实一般情况下,不会遇到变量c这种编码的,往往是哪些出错了,才会出现这种情况.所以遇到这种情况,要先 查看代码,避免这种情况的出现 原文:https://mozillazg.c ...

  10. IO流(10)复制多级文件夹

    import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import ja ...