Linux diff命令用于比较文件的差异。diff以逐行的方式,比较文本文件的异同处。特别是比较两个版本不同的文件,如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。diff命令可以同时输出成补丁文件,并且Linux中还有一个patch命令,可以依据diff生成的.patch补丁文件,将a.c与b.c两个文件差异部分更新到需要修改的文件。此外diff在SVN 、GIT、CVS等版本控制工具中也是不可获取的一部分。
在Linux 中,我们可以使用 diff --help 查看详细指导(篇幅有限只截图了一部分作为展示)
这个是我经常使用的命令,用来比较生成我修改后的代码的补丁包,最后用patch命令打补丁到需要使用的内核源码中去
-D巨集名称或ifdef巨集名称:此参数的输出格式可用于前置处理器巨集;
-f或-forward-ed:输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处;
-l字符或字符串或--ignore-matching-lines字符或字符串:若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异;
-N或--new-file:在比较目录时,若文件A仅出现在某个目录中,预设会显示:only in目录,文件A 若使用-N参数,则diff会将文件A 与一个空白的文件比较;
-P或--unidirectional-new-file:与-N类似,但只有当第二个目录包含了第一个目录所没有的文件时,才会将这个文件与空白的文件做比较;
说完了diff命令的操作,我们再来看看diff命令输出文件,因为有时候我们通过输出信息自己比对文件的差异结论。

