2017/03/02 每天一个 Linux 命令(23): diff

diff 命令是 linux 上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。

diff 命令格式:

Usage: diff [OPTION]... FILES
按行比较文件。
Options:
  -q, --brief                   只显示差异
  -s, --report-identical-files  文件相同仍然显示
  -c, -C NUM, --context[=NUM]   显示 NUM (default 3) 行 of copied context
  -u, -U NUM, --unified[=NUM]   显示 NUM (default 3) 行 of unified context
  -e, --ed                      output an ed script
  -n, --rcs                     以 RCS 格式显示差异 diff
  -r, --recursive               递归比较子目录
  -i, --ignore-case             忽略大小写
  -y, --side-by-side            并列显示
  -W, --width=NUM               指定栏数 NUM (default 130)

举例:

比较两个文件:

diff 1.log 3.log

a - add

c - change

d - delete

并排格式输出:

fiff -y -W 20 1.txt 2.txt

“|”表示前后2个文件内容有不同

“<”表示后面文件比前面文件少了1行内容

“>”表示后面文件比前面文件多了1行内容

上下文输出格式:

diff -c 1.log 4.log

“+” 比较的文件的后者比前着多一行

“-” 比较的文件的后者比前着少一行

“!” 比较的文件两者有差别的行

统一格式输出:

diff -u 4.log 3.log

“—“表示变动前的文件,”+++”表示变动后的文件

变动的位置用两个@作为起首和结束

比较文件夹不同:

diff  test3 test6