如何使用 macOS 命令行在终端中比较两个文件夹的内容

macOS Big Sur 终端图标

您是否曾经想要一种快速方法来比较两个目录(文件夹),以便查看两个目录之间哪些文件可能不同?还有第三方 GUI 工具,但实际上每台 Mac 中都内置了一个免费的文件夹比较工具 – 只需快速访问终端即可使用它。该程序名为 diff,使用起来非常简单。

启动终端(在”应用程序”>”实用程序”中),然后使用 cd 命令更改到包含您要比较的文件夹的目录。 (当然,这些文件夹可以位于任何位置,但如果它们位于同一个文件夹中,则最简单。)。到达那里后,只需运行以下命令:

diff -rq 文件夹1 文件夹2

这是一个非常简单的命令,有两个命令行开关 (-rq)。

  • r 告诉 diff 递归地查看每个目录,包括子目录。
  • q 开关在简短模式下设置 diff。如果我们没有设置简要模式,diff 不仅会告诉您两个文件夹之间哪些文件不同,还会显示任何文本文件的实际逐行差异存在于两个位置但不相同。鉴于我们只是对比较文件夹的内容感兴趣,因此不需要那么详细的信息,因此我们将使用简短模式来抑制它。

这就是全部内容。下面是它的实际效果(comments_newcomments_old 是我要比较的两个文件夹):

% cd phpcode% diff -rq comments_new comments_old仅在comments_new中:config.php仅在comments_old中:config_old.php仅在comments_old中:functions.inc

显然,这是一个简单的示例,但它对于包含数百个文件的大文件夹也同样有效。当然,如果您想使用 diff 做更多事情,它的功能不仅仅是简单的文件夹比较;输入 man diff 以了解其完整功能。