|
diff命令比较两个不同的文件或不同目录下的两个同名文件.在使用diff时,可以用选项来定制输出格式.patch程序将读取diff的输出和所比较 文件中的一个来重新生成另一个.diff手册的作者写道:"如果你认为diff是通过从一个文件中减去另一个来生成这两个文件的差别文件,那就可以认为 patch是使用这个差别文件和其中的一个源文件来生成另一个源文件". diff命令的一般语法为: diff [option] srcfile dstfile diff在运行时试图找到在srcfile和dstfile里都一样的很多连续行,在碰到srcfile和dstfile里不一样的行时运行被打打断,这些有差别的行称为块(hunk).
diff的命令行选项合参数 选项 描述 -a 将所有的文件看作文本,既使文件看起来像是二进制的也不例外,并且进行逐行比较 -b 忽略块中空白数目的改变 -B 忽略插入或删除空行造成的改变 -c 产生"上下文"(context)格式的输出 -C[num] 产生"上下文"(context)格式的输出,显示块前后num行的内容,如果不指定num的值,则显示块前后3行的内容 -H 修改diff处理大文件的方式 -i 忽略大小写,同样对待大写和小写字母 -I regexp 忽略插入或删除与正则表达式regexp匹配的行 -l 将输出结果通过pr命令处理加上页码 -p 显示出现块的C函数 -q 只报告文件是否不同;不输出差别 -r 比较目录时,进行递归比较 -s 报告两个文件相同(默认的行为是不报告相同的文件) -t 输出时tab扩展为空白 -u 产生"统一"(unified)格式的输出 -U[num] 产生"统一"(unified)格式的输出,显示块前后num行的内容,如果不指定num的值,则显示块前后3行的内容 -v 打印diff的版本号 -w 逐行比较时忽略空白 -W cols 如果产生并排格式的输出(参见-y) ,让输出的每一列有cols个字符宽 -x pattern 当比较目录时,忽略匹配模式pattern的任何文件和子目录 -y 产生并排格式的输出 |