使用 diff 在 Mac 上比较两个目录的内容
目录:
如果你想在 Mac 上查看两个文件夹之间的差异,或者比较两个目录的内容,你可以借助强大的 diff 命令轻松实现。
本教程将向您展示如何使用终端比较两个目录以及这些目录的内容。此命令行方法将输出一个文件,其中包含两个目标文件夹之间显示的精确差异。
为了实现这种比较,我们将使用命令行工具“diff”,diff 在所有 Mac 以及 linux 和其他 unix 操作系统上都可用,因此这实际上是一个跨平台解决方案用于比较目录。 Diff 的使用非常简单,可以轻松比较任意两个目录的内容,只需按照下面的详细语法进行操作即可。
如何使用diff比较两个目录的内容
要开始使用,请在Mac OS 中启动终端(位于/Applications/Utilities/),然后使用以下命令语法:
diff -rq directory1 directory2
指定要比较的适当目录后,按回车键。这将执行比较 directory1 和 directory2 的 diff 命令(如果您有一个文件名中包含空格的文件夹,只需将其放在引号中,例如:“folder one”)。我们正在使用 -rq 标志,因为 -r 意味着它是递归地包含子目录,而 -q 将命令输出简化为仅显示的差异。
命令的示例输出可能如下所示:
$diff -rq directory1 directory2
仅在目录1:example221.txt
仅在目录1:SuperSecretDifferentFile.rtf
仅在目录2:AmazingScript.py
仅在目录2:MyFavoriteSong.mp3
仅在目录2:MyFavoriteSpecialMovie.mp4
您还可以更进一步,将该命令的输出重定向到一个文件,假设它名为 differences.txt:
diff -rq directory1 directory2 >> differences.txt
这是一个示例以及实际打印输出的外观。假设我们正在比较名为“old music”和“new music”的文件夹,我们希望命令输出显示名为“musicfolders.music”的文件中这两个目录之间的差异。txt”,那么将使用以下命令语法:
"diff -rq old music>> musicfolders.txt"
现在在当前工作目录中查看您刚刚通过输出diff 命令创建的文件,在本例中该文件为musicfolders.txt,其内容可以在任何文本编辑器、命令行或否则。打开文本文件你会看到这样的东西:
仅在旧音乐中:song1.mp3 仅在旧音乐中:song2.mp3 仅在旧音乐中:song3.mp3 仅在新音乐中:instrumental1.mp3 仅在新音乐:instrumental1.mp3
如果你想从命令行查看文件,试试:
more musicfolders.txt
否则只需导航到包含目录并在您喜欢的文本编辑器中打开它。
如果您不想创建包含更改的文本文件,只需停止命令的输出重定向即可。您可能希望将输出通过管道传递给“more”之类的内容,以使其更易于扫描:
"diff -rq old music>"
diff 命令非常强大,还有许多其他可用选项,使用 man diff 命令获取有关如何使用 diff 以及无数可用功能的完整详细信息。
再次值得一提的是,该命令适用于Mac OS X——所有版本——以及大多数基于Unix的操作系统。