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. VMware 安装CentOS 6.5图文步骤 以及安装后无法联网的解决办法

    一.VMwareWorkstation10 中安装Centos6.5(64位)步骤: 首先下载vmware 和centos6.5 1. 打开VMware-workstation点击“新建虚拟机”,到向 ...

  2. C++和Java中枚举enum的用法

    在C++和java中都有枚举enum这个关键字,但是它们之间又不太一样.对于C++来说,枚举是一系列命名了的整型常量,而且从枚举值转化为对应的整型值是在内部进行的.而对于Java来说,枚举更像一个类的 ...

  3. PHP-FPM子进程过少解决办法

    /usr/local/php/var/log/php-fpm.log报一下错误 server reached pm.max_children setting (5), consider raising ...

  4. PAT-GPLT L1-039 - 古风排版 - [字符串输入输出]

    题目链接:https://www.patest.cn/contests/gplt/L1-039 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...

  5. hihocoder 1320 - 压缩字符串 - [hiho一下160周]

    这道题目可以说是一道非常好非常一颗赛艇的DP题了. 需要注意的是,其中情形3),字符串必然能完全转化为 N(str)形式,如果有N(str1)M(str2)等等另外样式,应该首先使用拼接形式对其进行划 ...

  6. Oracle备份恢复之断电导致控制文件和日志文件损坏修复

    Oracle数据库遭遇断电遭遇ora-00214.ora-00314.ora-00312错误恢复案例一枚 1.数据库在17日21:19启动开始报错ora-214错误: Tue Jan 17 21:19 ...

  7. Crontab '2>&1 &' 含义

    Crontab '2>&1 &' 含义 - dosttyy - 博客园 https://www.cnblogs.com/dosttyy/p/4810026.html

  8. jquery中的ajax方法参数的用法和他的含义:

    转自:https://www.cnblogs.com/huiyuantang/p/5458278.html 1.url:  要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.ty ...

  9. 洛谷P4438 道路 [HNOI/AHOI2018] 树形dp

    正解:树形dp 解题报告: 传送门! 昂首先看懂题目趴QwQ大概就是说有棵满二叉树,有n个叶子节点(乡村)和n-1个非叶子节点,然后这棵树的每个节点有三个属性abc,对每个非叶子节点可以从与子节点的两 ...

  10. hbuilder和sublime的autoprefixer安装或者里sass的$mixin处理浏览器前缀

    Autoprefixer是一个后处理程序,不象Sass以及Stylus之类的预处理器.它适用于普通的CSS,可以实现css3代码自动补全.也可以轻松跟Sass,LESS及Stylus集成,在CSS编译 ...