diff [选项] … [文件1或目录1] [文件2或目录2](四种组合方式)
说明:diff命令在最简单的情况下,比较两个文件的不同。如果使用”-”代替文件参数,则要比较的内容将来自标准输入。Diff命令是以逐行的方式比较文本文件的异同之处。如果指定比较的是目录的时候,diff命令会比较两个目录下名字相同的文本文件,但不会比较其中子目录。列出不同的二进制文件、公共子目录和只在一个目录出现的文件
(1).选项
-a,--text 把所有文件当做文本文件逐行比较
-b,--ignore-space-change 忽略空格产生的变化
-B,--ignore-blank-lines 忽略空白行的变化
-c,–C NUM,--context[=NUM] 使用上下文输出格式(文件1在上,文件2在下,在差异点会标注出来),输出NUM(默认3)行的上下文(上下各NUM行,不包括差异行)
-d,--minimal 使用不同的算法,努力寻找一个较小的变化集合。这会使diff变慢(有时更慢)
-D NAME,--ifdef=NAME 合并if-then-else格式输出,预处理宏(由NAME参数提供)条件
-e,--ed 输出一个ed格式的脚本文件
-E,--ignore-all-space 忽略由于Tab扩展而导致的变化
-F RE,--show-function-line=RE 在上下文输出格式(文件1在上,文件2在下)和统一输出格式中,对于每一大块的不同,显示出匹配RE(regexp正则表达式)最近的行
-i,--ignore-case 忽略大小写的区别
-I RE,--ignore-matching-lines=RE 忽略所有匹配RE(regexp正则表达式)的行的更改
-l,--paginate 通过pr编码传递输出,使其分页
-n,--rcs 输出RCS格式差异
-N,--new-file 把缺少的文件当做空白文件处理
-p,--show-c-function 显示带有C函数的变化
-q,--brief 仅输出文件是否有差异,不报告详细差异
-r,--recursive 当比较目录时,递归比较所有找到的子目录
-s,--report-identical-files 当两个文件相同时报告
-S FILE,--starting-file=FILE 在比较目录时,从FILE开始。用于继续中断的比较
-t,--expand-tabs 将输出时扩展Tab转换为空格,保护输入文件的tab对齐方式
-T,--initial-tab 通过预先设置的tab使选项卡对齐(???)
-u,-U NUM,--unified[=NUM] 使用统一输出格式(输出一个整体,只有在差异的地方会输出差异点,并标注出来),输出NUM(默认3)行的上下文(上下各NUM行,不包括差异行)
-v,--version 输出版本号
-w,--ignore-all-space 比较时忽略所有空格
-W NUM,--width=NUM 在并列输出格式时,指定列的宽度为NUM(默认130)
-x PAT,--exclude=PAT 排除与PAT(pattern样式)匹配的文件
-X FILE,--exclude-from=FILE 排除与FILE中样式匹配的文件
-y,--side-by-side 使用并列输出格式
--from-file=FILE1 FILE1与所有操作对象比较,FILE1可以是目录
--help 输出帮助信息
--horizon-lines=NUM 保留NUM行的公共前缀和后缀
--ignore-file-name-case 比较时忽略文件名大小写
--label LABEL 使用LABEL(标识)代替文件名
--left-column (在并列输出格式中)只输出左列的公共行
--no- ignore-file-name-case 比较时考虑文件名大小写
--normal 输出一个正常的差异
--speed-large-files 假设文件十分大,而且有许多微小的差异
--strip-trailing-cr 去掉在输入时尾随的回车符
--suppress-common-lines 不输出公共行
--to-file=FILE2 所有操作对象与FILE2比较,FILE2可以是目录
--unidiredtional-newfile 将缺少的第一个文件视为空文件
--GTYPE-group-format=GFMT 以GFMT格式化GTYPE输入组
--line-format=LFMT 以LFMT格式化输入所有行
--LTYPE-line-format=LFMT 以LFMT格式化LTYPE输入行
LTYPE可以是’old’,’new’或’unchanged’。GTYPE可以是LTYPE选项或’changed’
GFMT包括:
%< 该行属于FILE1
%> 该行属于FILE2
%= 该行属于FILE1和FILE2公共行
%[-][WIDTH(宽度)][.[PREC(精确度)]]{doxX}LETTER(字母) printf格式规范LETTER。如下字母表示属于新的文件,小写表示属于旧的文件:
F 行组中第一行的行号
L 行组中最后一行的行号
N 行数(=L-F+1)
E F-1
M L+1
LFMT可包含:
%L 该行内容
%l 该行内容,但不包括尾随的换行符
%[-][WIDTH][.[PREC]]{doxX}n printf格式规范输入行编号
GFMT或LFMT可包含:
%% %
%c’C’ 单个字符C
%c’