在本文中,我们将描述如何在Linux中找到两个目录之间的差异。

通常,为了比较Linux中的两个文件,我们使用diff,一个简单而原始的Unix命令行工具,它向您显示两个计算机文件之间的差异。 逐行比较文件,并且易于使用,并且在大多数Linux发行版中都预装了该工具。

问题是如何在Linux中获得两个目录之间的区别? 在这里,我们想知道两个目录中共有哪些文件/子目录,它们存在于一个目录中却不在另一个目录中。

运行diff的常规语法如下:

$ diff [OPTION]… FILES
$ diff options dir1 dir2

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

linuxmi@linuxmi:~/www.linuxmi.com$ diff -q www.linuxmi.com/ linuxmi.com/
只在 www.linuxmi.com/ 存在:Blender 2.blend
只在 www.linuxmi.com/ 存在:Windows 10 vs Debian vs Arch Linux (EndeavourOS) – Speed Test!-cQWwb8VRrhU.mkv

两个目录之间的差异

同样,diff不会进入子目录,但是我们可以使用-r开关读取子目录,就像这样。

linuxmi@linuxmi:~/www.linuxmi.com$ diff -qr www.linuxmi.com/ linuxmi.com/

使用Meld可视化差异和合并工具

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

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install meld [Debian/Ubuntu 系统]

linuxmi@linuxmi:~/www.linuxmi.com$ sudo yum install meld [RHEL/CentOS 系统]
linuxmi@linuxmi:~/www.linuxmi.com$ sudo dnf install meld [Fedora 22+]

安装后,在Fedora或CentOS桌面上的“活动概述”中的Ubuntu Dash或Linux Mint菜单中搜索“ meld”,然后启动它。

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

选择您想要比较的目录,注意您可以通过勾选“3路比较”选项来添加第三个目录(如下图)。

一旦你选择了目录,点击“比较”。

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

发表评论