网站搜索

如何使用 Diff 和 Meld 工具查找两个目录之间的差异


在之前的文章中,我们回顾了 Linux 上的 9 个最佳文件比较和差异 (Diff) 工具,在本文中,我们将描述如何在 Linux 中查找两个目录之间的差异。

通常,要在Linux中比较两个文件,我们使用diff——一个简单而原始的Unix命令行工具,可以显示两个计算机文件之间的差异;逐行比较文件,并且易于使用,预装在大多数(如果不是全部)Linux 发行版上。

问题是我们如何获得Linux中两个目录之间的差异?在这里,我们想知道两个目录中哪些文件/子目录是共同的,即那些存在于一个目录中但不存在于另一个目录中的文件/子目录。

运行 diff 的常规语法如下:

diff [OPTION]… FILES
diff options dir1 dir2 

默认情况下,其输出按文件/子目录名称的字母顺序排列,如下面的屏幕截图所示。在此命令中,-q 开关告诉 diff 仅在文件不同时才报告。

diff -q directory-1/ directory-2/

同样, diff 不会进入子目录,但我们也可以使用 -r 开关来读取子目录,如下所示。

diff -qr directory-1/ directory-2/ 

使用 Meld 视觉差异和合并工具

对于那些喜欢使用鼠标的人来说,有一个很酷的图形选项,称为meld(GNOME 桌面的视觉差异和合并工具),您可以按如下方式安装它。


sudo apt install meld         [On Debian, Ubuntu and Mint]
sudo yum install meld         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/meld  [On Gentoo Linux]
sudo apk add meld             [On Alpine Linux]
sudo pacman -S meld           [On Arch Linux]
sudo zypper install meld      [On OpenSUSE]   
sudo brew install meld        [On macOS]  

安装完成后,在Ubuntu DashLinux Mint菜单中的活动概述中搜索“meld” > 在 Fedora 或 CentOS 桌面上并启动它。

您将看到下面的Meld界面,您可以在其中选择文件或目录比较以及版本控制视图。点击目录比较,进入下一个界面。

选择要比较的目录,请注意,您可以通过选中“三向比较”选项来添加第三个目录。

选择目录后,单击“比较”。

在本文中,我们描述了如何在 Linux 中查找两个目录之间的差异。如果您知道任何其他命令行或 GUI 方式,请不要忘记通过下面的评论部分分享您对本文的想法。