Linux 中如何比较两个文件的差异?答案是使用 diff 命令。

那么,如何比较两个文件夹呢?仍然使用 diff 命令。

另外,使用 GUI 工具也可以更容易的以可视化界面来查看两个目录之间的差异。

今天我们分享一下如何使用 diff 命令来比较目录。

使用 tree 命令可查看我们今天的例子中使用的两个目录的结构:

Linux Diff Meld

使用 diff 命令比较目录

使用 diff 命令,可参照如下语法结构:


diff -qr Directory-1 Directory-2

-q 选项,用于查找差异。当两个目录中发现差异的时候,会有输出报告:


diff -q LHB-1 LHB-2

Linux Diff Meld

但是,大家仔细看输出结果,diff 命令只查看第一层目录结构。默认情况下,它不会查找子目录中的文件。

要执行递归查找,需要使用 -r 选项:


diff -qr LHB-1 LHB-2

Linux Diff Meld

但是,另外的情况,如果想要查找类似的文件呢?

查找类似的文件可以使用 -s 选项。如果同时使用 -q 和 -s,将会同时显示相同和不同的目录文件:


diff -qrs LHB-1 LHB-2

Linux Diff Meld

diff 命令显示目录中不同的文件。要查看差异,可以再次对文件运行 diff 命令,以查看其内容的差异。

使用 GUI 工具来比较目录

如果不想使用命令行工具,只想以最简单的方式比较两个目录,可以使用 Meld。

Meld 是一个可以检查和合并差异的 GUI 工具。当然,使用前需要安装。如果使用的是 Ubuntu/Debian 系统,使用如下命令:


sudo apt install meld

安装完成后,使用 Meld,可执行以下三个简单的步骤:

  • 选择目录比较(directory comparison)
  • 选择需要比较的目录
  • 点击比较(compare)按钮

Linux Diff Meld

点击比较按钮后,它将显示所选目录中的匹配文件和不同文件:

Linux Diff Meld

标注星号的是完全匹配的文件,而用绿色突出显示的文件名仅可用于相应的目录。