用途

按行比较文件差异,也可以比较目录

用法

diff [OPTION]... FILES

常用选项

-i --ignore-case

忽略大小写

--ignore-file-name-case

忽略文件名大小写

--no-ignore-file-name-case

文件名区分大小写

-E --ignore-tab-expansion

忽略tab字符

-b --ignore-space-change

忽略空格

-w --ignore-all-space

忽略所有空格

-B --ignore-blank-lines

忽略空白行

-I RE --ignore-matching-lines=RE

过滤匹配的行

--strip-trailing-cr

去掉行尾回车符

-a --text

所有文件内容当做文本

-c -C NUM --context[=NUM]

(Output NUM (default 3) lines of copied context.)

-u -U NUM --unified[=NUM]

(Output NUM (default 3) lines of unified context.)

--label LABEL

使用LABEL代替文件名

-p --show-c-function

显示差异行所在文件

-F RE --show-function-line=RE

(Show the most recent line matching RE.)

-q --brief

直接输出结果是否有差异

-e --ed

(Output an ed script.)

--normal

(Output a normal diff.)

-n --rcs

(Output an RCS format diff.)

-y --side-by-side

同时输出2个文件的内容,对照显示

-W NUM --width=NUM

(Output at most NUM (default 130) print columns.)

--left-column

左边输出完整内容,右边只输出差异

--suppress-common-lines

只输出差异行

-D NAME --ifdef=NAME

(Output merged file to show ‘#ifdef NAME’ diffs.)

--GTYPE-group-format=GFMT

(Similar, but format GTYPE input groups with GFMT.)

(GTYPE is LTYPE or ‘changed’.)

--line-format=LFMT

(Similar, but format all input lines with LFMT.)

--LTYPE-line-format=LFMT

(Similar, but format LTYPE input lines with LFMT.)

(LTYPE is ‘old’, ‘new’, or ‘unchanged’.)

-l --paginate

分页显示

-t --expand-tabs

输出时,tab字符换成空格

-T --initial-tab

(Make tabs line up by prepending a tab.)

-r --recursive

(Recursively compare any subdirectories found.)

-N --new-file

(Treat absent files as empty.)

--unidirectional-new-file

(Treat absent first files as empty.)

-s --report-identical-files

(Report when two files are the same.)

-x PAT --exclude=PAT

(Exclude files that match PAT.)

-X FILE --exclude-from=FILE

(Exclude files that match any pattern in FILE.)

-S FILE --starting-file=FILE

(Start with FILE when comparing directories.)

--from-file=FILE1

(Compare FILE1 to all operands. FILE1 can be a directory.)

--to-file=FILE2

(Compare all operands to FILE2. FILE2 can be a directory.)

--horizon-lines=NUM

(Keep NUM lines of the common prefix and suffix.)

-d --minimal

(Try hard to find a smaller set of changes.)

--speed-large-files

(Assume large files and many scattered small changes.)

-v --version

输出程序版本信息

--help

显示帮助信息

实践

1 比较2个文件

# 显示所有
diff -y dir1/friend.php friend.php # 只显示差异
diff -y --suppress-common-lines dir1/friend.php friend.php # 只显示左边完整内容,右边只显示差异内容
diff -y --left-column dir1/friend.php friend.php

擦参考资料

【1】man diff

N天学习一个linux命令之diff的更多相关文章

  1. N天学习一个Linux命令之帮助命令:man

    前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...

  2. N天学习一个Linux命令之free

    用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [ ...

  3. N天学习一个linux命令之ping

    用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...

  4. N天学习一个linux命令之kill

    用途 用于终止进程 用法 kill [-s signal|-p] [--] pid... kill -l [signal] 说明 1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对 ...

  5. N天学习一个linux命令之du

    用途 统计文件或者目录占用硬盘空间大小 用法 du [OPTION] [FILE]du [OPTION] --files0-from=F 常用参数 -a, --all统计所有文件,不仅仅是目录 -b, ...

  6. N天学习一个linux命令之scp

    用途 通过ssh通道,不同主机之间复制文件 用法 scp [options] [user@host:]file1 [user2@host2:]file2 常用参数 -1使用 ssh 1协议 -2使用s ...

  7. 每天学习一个Linux命令-目录

    在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...

  8. 每天一个linux命令(49)--diff命令

    diff 命令是 Linux 上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff 在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件,diff ...

  9. N天学习一个linux命令之umask

    前言 umask不是linux命令,而是shell内置的指令,俗称用户权限掩码,用于对用户创建的文件和目录设置默认权限.默认的权限掩码是0022,也就是说新创建的文件权限是0644,新创建的目录权限是 ...

随机推荐

  1. 字典(Trie树)

    4189 字典  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master     题目描述 Description 最经,skyzhong得到了一本好厉害的字典,这个 ...

  2. [App Store Connect帮助]三、管理 App 和版本(4)创建新版本

    当您准备分发 App 的新版本时,您创建的新版本使用您为原始版本创建的 App 记录.该新版本将对购买过先前版本的顾客免费可用. 各版本使用的 Apple ID(App 标识符).SKU 和套装 ID ...

  3. OI——不后悔的两年

    NOI2014,悲惨的考跪,99+170+130 399 Cu滚粗.最终签到了复旦的一本,还算是有点结果吧.(其实我一开始就想读复旦我会说?)回首这两年,就像一场梦一样,从一无所知的小白到进入省队再到 ...

  4. ACM_黑色星期五

    黑色星期五 Time Limit: 2000/1000ms (Java/Others) Problem Description: 13号又是星期五是一个不寻常的日子吗?13号在星期五比在其他日少吗?为 ...

  5. [转]linux下ulimit命令详解

    转自:http://blog.chinaunix.net/uid-23842323-id-2656582.html 1,说明:ulimit用于shell启动进程所占用的资源.2,类别:shell内建命 ...

  6. D3.js 力导向图(气泡+线条+箭头+文字)

    <!DOCTYPE html> <meta charset="utf-8"> <style> .link { fill: none; strok ...

  7. 【转】Java 集合系列02之 Collection架构

    概要 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set. List和Set都是接 ...

  8. [转]STL之list容器详解

    List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入删除元素. 使用list容 ...

  9. cmd 切换目录和配置环境变量

    记录一下: 在用cmd进行切换盘符的时候, 如果是从 C盘切换到其他盘的话: D:直接回车就行了. 如果是在同一个盘符内切换文件夹的话,cd D:\ComputerSoft\curl\curl-7.6 ...

  10. js 学习笔记---基本概念

    早已接触javascript多年之后,竟然还有这些概念混淆不清,毫不知情,说出来真实无地自容 ! 1.使用严格模式,"use strict",虽然不适用,但是要知道,以免别人使用时 ...