diff 命令介绍

diff 命令的功能为逐行比较两个文本文件,列出其不同之处。对给出的文件进行系统的检查,并显示出两个文件中所有不同的行。如果 diff 命令后跟的是目录,则会对该目录中的同名文件进行比较,但不会比较其子目录。

常用参数说明

  1. -a 预设只会逐行比较文本文件
  2. -b 忽略行尾的空格
  3. -B 不检查空白行
  4. -c 用上下文输出格式,提供 n 行上下文
  5. -C 执行与 -c 命令相同
  6. -d 使用不同的演算法,以较小的单位来做比较
  7. -f 输出的格式类似于ed script,但按照原来文件的顺序来显示不同处
  8. -H 比较大文件时可以加快速度
  9. -l 若比较的文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。
  10. -i 不检查大小写的不同
  11. -I 讲结果交由 pr 程序来分页
  12. -n 将比较结果以 RCS 的格式来显示
  13. -N 在比较目录时,若文件 A 仅出现在某个目录中,则预设会显示。
  14. -p 若比较的文件为 C语言 的程序源文件时,则预设会显示
  15. -P -N 类似,但只有当第二个目录包含了包含了第一个目录中没有的文件按时,才会将这个文件与空白的文件比较。
  16. -q 仅显示有无差异,不显示详细信息
  17. -r 比较子目录中的文件
  18. -s 若没有发现任何差异,任然显示信息
  19. -S 在比较目录时,从指定的文件开始比较
  20. -t 在输出时将 tab 字符展开
  21. -T 在每行前面加上tab 字符以便对齐
  22. -u,-U 以合并的方式来显示文件内容的不同
  23. -v 显示版本信息
  24. -w 忽略全部的空格字符
  25. -W 在使用 -y 参数时,指定栏宽
  26. -x 不比较选项中指定的文件或目录
  27. -X 可以将文件或目录类型存成文本文件,然后指定此文本文件
  28. -y 以并列的方式显示文件的异同之处
  29. --help 显示帮助

实例

diff a.c  b.txt 
diff a.c  b.txt | cat -n

比较文件差异diff - 图1

在上述结果中, 以 < 开头的行属于第一个文件,以 > 开头的行属于第二个文件,字母 a b c 分别表示 附加 删除 修改操作(上述结果中仅有c)。