在 Linux 命令行中比较两个目录

你如何在 Linux 中比较两个文件? 您使用 diff 命令。

但是在 Linux 中如何比较两个文件夹呢? 您仍然使用 diff 命令。

使用 GUI 工具更容易可视化两个目录之间的差异。

在本教程中,我将分享如何使用 diff 命令比较目录。 我还将讨论一个名为 Meld 的 GUI 工具。

tree 命令显示了我在示例中使用的两个目录的结构。

因此,让我们从 CLI 方法开始本教程。

在 Linux 中使用 diff 命令比较目录

要使用 diff 命令,您必须遵循一个简单的语法:

diff -qr Directory-1 Directory-2

要找到差异,您将不得不使用 -q 只有在发现差异时才会报告的选项。

diff -q LHB-1 LHB-2

但如果你仔细观察,diff 命令只查找文件级别 1。默认情况下,它不会查找子目录内的文件。

要执行包括子目录的搜索,您必须使用 -r 旗帜:

diff -qr LHB-1 LHB-2
在Linux中递归比较目录

但是,如果您也想知道类似的文件怎么办?

您可以使用 -s 旗帜。 所以如果你同时使用这两个标志 -q-s, 它将显示相同和不同的目录文件:

diff -qrs LHB-1 LHB-2
在linux中查找多个目录的相同和不同文件

?diff 命令显示目录中哪些文件不同。 要查看差异,您可以对文件再次运行 diff 命令以查看它们的内容有何不同。

在 Linux 中使用 GUI 比较目录

如果您不是终端迷并且想以最简单的方式比较目录,请使用 Meld。

融合 是一个 GUI 工具,允许您检查和合并差异。

您必须先安装它。 在 Ubuntu/Debian 中,使用:

sudo apt install meld

它也可以作为 flatpak 提供:

flatpak install flathub org.gnome.meld

如果您还没有在您的系统上配置 flatpak,请查看我们的详细指南 如何在各种 Linux 发行版上设置 flatpak。

完成安装后,从系统菜单中打开 Meld,然后按照三个简单的步骤操作:

  1. 选择目录比较
  2. 选择要比较的目录
  3. 点击 Compare 按钮
选择要在 meld 上进行比较的目录

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

使用 meld 比较目录

标有星号的是完全匹配的。

而用绿色突出显示的文件名仅适用于相应的目录。

寻找更多工具进行比较?

如果您正在寻找更多工具来比较具有各种功能的文件,我们已经为此提供了专门的指南:

如果您对本指南有任何疑问或想建议我接下来应该介绍什么,请在评论中告诉我。