使用 Diff 和 Meld 工具比较两个目录的不同处

本文介绍了如何在Linux系统中使用命令行工具`diff`和图形化工具`Meld`来比较两个目录之间的差异。通过`diff`的`-q`和`-r`选项可以查看文件及子目录的异同,而Meld则提供了一个直观的图形界面,支持3-way比较,便于鼠标操作进行文件夹比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



一般情况下,要在 Linux 下比较两个文件,我们会使用 diff (一个简单的源自 Unix 的命令行工具)来显示两个计算机文件的不同;它一行一行的去比较文件,而且很方便使用,在几乎全部的 Linux 发行版都预装了。

问题是在 Linux 下我们怎么才能比较两个目录?现在,我们想知道两个目录中哪些文件/子目录是共有的,哪些只存在一个于目录。

运行 diff 常规的语法如下:

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

默认情况下,输出是按文件/子文件夹的文件名的字母排序的,如下面截图所示,在命令中, -q 开关是告诉 diif 只有在文件有差异时报告。

$ diff -q directory-1/ directory-2/

使用 Diff 和 Meld 工具比较两个目录的不同处使用 Diff 和 Meld 工具比较两个目录的不同处

两个文件夹之间的差异

再次运行 diff 并不能进入子文件夹,但是我们可以使用 -r 开关来读子文件夹,如下所示。

$ diff -qr directory-1/ directory-2/ 
使用 Meld 可视化比较和合并工具

meld 是一个很酷的图形化工具(一个 GNOME 桌面下的可视化的比较和合并工具),可供那些喜欢使用鼠标的人使用,可按如下来安装。

$ sudo apt install meld  [Debian/Ubuntu systems]
$ sudo yum install meld  [RHEL/CentOS systems]
$ sudo dnf install meld  [Fedora 22+]

一旦你安装了它之后,在 Ubuntu Dash 或者 Linux Mint 菜单搜索 “meld” ,或者 Fedora 或 CentOS 桌面的 Activities Overview,然后启动它。

你可以看到如下的 Meld 界面,可以选择文件或者文件夹来比较,此外还有版本控制视图。点击目录比较并移动到下个界面。使用 Diff 和 Meld 工具比较两个目录的不同处使用 Diff 和 Meld 工具比较两个目录的不同处

Meld 比较工具

选择你想要比较的文件夹,注意你可以勾选 “3-way Comparison” 选项,添加第三个文件夹。

使用 Diff 和 Meld 工具比较两个目录的不同处使用 Diff 和 Meld 工具比较两个目录的不同处

选择比较的文件夹

选择好要比较的文件夹后,点击 “Compare”。

使用 Diff 和 Meld 工具比较两个目录的不同处使用 Diff 和 Meld 工具比较两个目录的不同处

文件夹不同列表

在这篇文章中,我们描述了怎么在 Linux 下找到两个文件夹的不同。如果你知道其他的命令或者图形界面工具,不要忘记在下方评论分享你们的想法。


免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好,开源站点:http://www.linuxprobe.com/


Linux系统技术交流QQ群2632018验证问题答案:刘遄<Linux就该这么学>G群

一般情况下,要在 Linux 下比较两个文件,我们会使用 diff (一个简单的源自 Unix 的命令行工具)来显示两个计算机文件的不同;它一行一行的去比较文件,而且很方便使用,在几乎全部的 Linux 发行版都预装了。

问题是在 Linux 下我们怎么才能比较两个目录?现在,我们想知道两个目录中哪些文件/子目录是共有的,哪些只存在一个于目录。

运行 diff 常规的语法如下:

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

默认情况下,输出是按文件/子文件夹的文件名的字母排序的,如下面截图所示,在命令中, -q 开关是告诉 diif 只有在文件有差异时报告。

$ diff -q directory-1/ directory-2/

使用 Diff 和 Meld 工具比较两个目录的不同处使用 Diff 和 Meld 工具比较两个目录的不同处

两个文件夹之间的差异

再次运行 diff 并不能进入子文件夹,但是我们可以使用 -r 开关来读子文件夹,如下所示。

$ diff -qr directory-1/ directory-2/ 
使用 Meld 可视化比较和合并工具

meld 是一个很酷的图形化工具(一个 GNOME 桌面下的可视化的比较和合并工具),可供那些喜欢使用鼠标的人使用,可按如下来安装。

$ sudo apt install meld  [Debian/Ubuntu systems]
$ sudo yum install meld  [RHEL/CentOS systems]
$ sudo dnf install meld  [Fedora 22+]

一旦你安装了它之后,在 Ubuntu Dash 或者 Linux Mint 菜单搜索 “meld” ,或者 Fedora 或 CentOS 桌面的 Activities Overview,然后启动它。

你可以看到如下的 Meld 界面,可以选择文件或者文件夹来比较,此外还有版本控制视图。点击目录比较并移动到下个界面。使用 Diff 和 Meld 工具比较两个目录的不同处使用 Diff 和 Meld 工具比较两个目录的不同处

Meld 比较工具

选择你想要比较的文件夹,注意你可以勾选 “3-way Comparison” 选项,添加第三个文件夹。

使用 Diff 和 Meld 工具比较两个目录的不同处使用 Diff 和 Meld 工具比较两个目录的不同处

选择比较的文件夹

选择好要比较的文件夹后,点击 “Compare”。

使用 Diff 和 Meld 工具比较两个目录的不同处使用 Diff 和 Meld 工具比较两个目录的不同处

文件夹不同列表

在这篇文章中,我们描述了怎么在 Linux 下找到两个文件夹的不同。如果你知道其他的命令或者图形界面工具,不要忘记在下方评论分享你们的想法。

ExamDiff Pro 是一个可视化的文件目录比较工具,它具有一系列简单方便的比较功能 (可比 Beyond Compare 方便好用多了!)。 - 比较文本文件,二进制文件目录。 - 高亮不同差异 (深入到行、词、字符级别)。 - 允许在文件比较窗格内编辑文件。 - 打印打印预览差异报告。 - 完全支持 UNICODE。 - 允许为以后的比较创建目录快照。 - 执行同步自动换行。 - 用户可以指定记住第一个第二个文件或目录的数量。 - 不需要制定两个文件名,仅输入一个目录一个文件名进行比较,EximDiff 将会尝试使用先前指定目录下的文件名进行比较。 - 在第一个第二个文件或目录之间进行切换。 - 自动检测文件或目录变化,并且提示用户重新比较。 - 使用重新比较功能后,视图焦点将会保持与重新比较之前保持一致。 - 支持拖放操作,可以从 Windows 资源管理器中拖动两个文件或目录进行比较。 - 在目录比较窗格内,只要简单地双击文件或目录,就可以执行比较。 - 在目录比较窗格内,通过菜单、工具栏按钮或右键弹出菜单,可以复制、重命名删除文件或目录。这其中的任何操作都会自动地重新同步比较目录。你还可以在左边或右边的窗格内,按名称、大小、类型或最后修改时间,对目录进行排序。 - 易用的文件编辑功能。 ExamDiff Pro 还可以给定文件名插入符位置,调用任何的外部编辑器 (用户配置)。 - 保存差异文件 (标准 UNIX 差异文件) 或 HTML 差异文件。 - 通过“下一个差异”“上一个差异”按钮热键,或所有差异列表框,用户可以在差异之间方便地浏览。 - 在文件比较窗格内,可以通过拖放、热键或右键菜单来复制文本。 - 可以通过简单的“搜索” 命令在比较窗格内搜索字符串。另外,ExamDiff Pro 将会记住用户指定数量的新近搜索。 - 可定制颜色。 - 完全可订制的文件扩展名过滤器。例如,用户可以选择只显示 .c .cpp 文件,或任何其它的文件。 - 完善的工具栏提示支持。 - 可调整的窗格分割栏,具有平滑同步滚动功能。 - 可以在水平分割垂直分割之间任意切换,或者隐藏窗格。 - 命令行支持: 用法: ExamDiff [名称1] [名称2] [选项] 或 ExamDiff /se:会话 [名称1] [名称2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值