学习Linux命令(28)

diff命令

命令格式

diff [参数] [文件1或目录1] [文件2或目录2]

命令功能

能比较单个文件或目录内容,如果指定比较的是文件,则只有当输入为文本时才有效。以逐行的方式,比较文本文件的异同。如果指定比较的是目录,diff命令比较两个目录下名字相同的文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。

命令参数

-q或--brief:仅显示有无差异,不显示详细信息
-s或--report-identical-files:当两个文件相同时,仍显示详细信息
-c或-C NUM或--context[=NUM]:输出不同之处的前NUM行,默认为3行
-u或-U NUM或--unified[=NUM]:以合并方式显示文本的差异,并输出差异后的NUM行,默认为3行
-e或--ed:输出一个ed的script
-n或--rcs:比较结果以RCS的格式显示
-y或--side-by-side:输出两列
-W或--width=NUM:在使用y参数时指定列宽,默认130
--left-column:使用-y参数时,如果两列相同,则只显示左侧
--suppress-common-lines:在使用-y参数时,只显示不同列
-p或--show-c-function:在比较C语言的程序代码文件时,显示不同处所在的函数名
-F或--show-function-line=RE:输出匹配到RE的最近一行
-t或--expand-tabs:输出时,将tab展开
-T或--initial-tab:在每行前输出tab使每行对齐
-l或--paginate:将结果交由“pr”程序来分页
-r或--recursive:递归执行,比较子目录中的文件
-N或--new-file:将缺省的文件作为空文件处理
-x或--exclude=PAT:不比较PAT匹配的文件
-S或--starting-file=FILE:当比较目录时,从FILE文件开始比较
-i或--ignore-case:忽略大小写
-E或--ignore--tab-expansion:忽略因为tab扩展引起的差异
-Z或--ignore-trailing-space:忽略行后空白
-b或--ignore-space-change:忽略由空白数不同引起的差异
-w或--ignore-all-space:忽略所有空白
-B或--ignore-blank-lines:忽略空白行
-I或--ignore-matching-lines=RE:忽略匹配RE的行
-a或--text:所有文件作为文本文件
-d或--minimal:使用不同的演算法,找出较小单位做比较
--help:显示帮助信息
-v或--version:显示版本信息
例子:
学习Linux命令(28)
学习Linux命令(28)