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

  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. Function学习

    ---恢复内容开始--- Function的定义: 1.函数声明 function sum1(){ alert("sum1") } 2.函数表达式 var sum2 = funct ...

  2. css的border的solid

    http://www.w3school.com.cn/cssref/pr_border-style.asphttp://www.w3school.com.cn/tiy/t.asp?f=csse_bor ...

  3. java.lang.ClassNotFoundException: hudson.remoting.Launcher

    jenkins构建失败,错误信息如下: [yjp-dev-po-hrsync] $ "C:\Program Files\Java\jdk1.8.0_121/bin/java" -c ...

  4. saltstack-----上线环境篇(一)

    在11上安装mysql yum install mariadb mariadb-server -y 在mysql的配置文件my.cnf中加入 init_connect='SET collation_c ...

  5. 在ubuntu下安装使用latex

    参考:https://www.cnblogs.com/longdouhzt/archive/2012/09/27/2706358.html https://jingyan.baidu.com/albu ...

  6. PyCharm导入tensorflow包报错的问题

    [注]PyCharm导入tensorflow包报错的问题 若是你也遇到这个问题,说明你也没有理解tensorflow到底在哪里. 当安装了anaconda3.6后,在PyCharm中设置interpr ...

  7. pandas3

    转自:http://python.jobbole.com/81212/ 介绍 也许大多数人都有在Excel中使用数据透视表的经历,其实Pandas也提供了一个类似的功能,名为 pivot_table. ...

  8. JMeter(十四)-自动生成测试报告

    很多朋友都在问jmeter如何生成测试报告,这里随便说两句. 环境要求 1:jmeter3.0版本之后开始支持动态生成测试报表 2:jdk版本1.7以上 3:需要jmx脚本文件 基本操作 1:在你的脚 ...

  9. 2018/03/15 每日一个Linux命令 之 mv

    Linux mv命令用来为文件或目录改名.或将文件或目录移入其它位置. mv [参数] [要移动/更名的文件] [移动路径/要更改名字] 平常用的很多了,这里就不多讲解了,只介绍两个重要参数就好了 - ...

  10. [python-opencv] 模糊操作

    @不要在奋斗的年纪 选择安逸 均值模糊 中值模糊 自定义模糊 意义与应用场景 模糊的基本原理: 1.基于离散卷积 2.定义好每个卷积核 3.不同卷积核得到不同的卷积效果 4.模糊是卷积的一种表象 #均 ...