在之前的文章中,我们回顾了Linux 上的 9 个最佳文件比较和差异 (Diff) 工具,在本文中,我们将描述如何在 Linux 中查找两个目录之间的差异。
通常,要在 Linux 中比较两个文件,我们使用diff – 一个简单而原始的 Unix 命令行工具,可以显示两个计算机文件之间的差异;逐行比较文件,并且易于使用,预装在大多数(如果不是全部)Linux 发行版上。
问题是我们如何获得Linux中两个目录之间的差异?在这里,我们想知道两个目录中哪些文件/子目录是共同的,哪些文件/子目录存在于一个目录中但不存在于另一个目录中。
运行 diff 的常规语法如下:
$ diff [选项]...文件 $ diff 选项 dir1 dir2
默认情况下,其输出按文件/子目录名称的字母顺序排列,如下面的屏幕截图所示。在此命令中,-q
开关告诉 diff 仅在文件不同时报告。
$ diff -q 目录-1/目录-2/
![](https://www.alaica.com/wp-content/uploads/linux-244.png)
同样, diff 不会进入子目录,但我们也可以使用开关-r
来读取子目录,如下所示。
$ diff -qr 目录-1/目录-2/
使用 Meld 视觉差异和合并工具
对于那些喜欢使用鼠标的人来说,有一个很酷的图形选项,称为meld ( GNOME 桌面的视觉差异和合并工具),您可以按如下方式安装它。
$ sudo apt install meld [在Debian、Ubuntu 和 Mint上] $ sudo yum install meld [在RHEL/CentOS/Fedora和Rocky/AlmaLinux上] $ sudo emerge -a sys-apps/meld [在Gentoo Linux上] $ sudo apk add meld [在Alpine Linux上] $ sudo pacman -S meld [在Arch Linux上] $ sudo zypper install meld [在OpenSUSE上] $ sudo brew install meld [在macOS上]
安装完成后,在Ubuntu Dash或Linux Mint 菜单、 Fedora 或 CentOS 桌面上的活动概述中搜索“ meld ”并启动它。
您将看到下面的Meld界面,您可以在其中选择文件或目录比较以及版本控制视图。点击目录比较,进入下一个界面。
![](https://www.alaica.com/wp-content/uploads/linux-245.png)
选择要比较的目录,请注意,您可以通过选中“ 3-way Comparison ”选项来添加第三个目录。
![](https://www.alaica.com/wp-content/uploads/linux-246.png)
选择目录后,单击“比较”。
![](https://www.alaica.com/wp-content/uploads/linux-247.png)
在本文中,我们描述了如何在 Linux 中查找两个目录之间的差异。如果您知道任何其他命令行或 GUI 方式,请不要忘记通过下面的评论部分分享您对本文的想法。