如何在 Linux 中使用 diff 命令比较两个目录中的文件?
linuxoperating systemopen source更新于 2026/2/15 2:37:17
假设我们有两个目录,例如 d1 和 d2,这两个目录都包含一些文件,这些文件可能相同,也可能不同。现在,我们需要比较这两个目录中的文件,并通过比较打印出哪些文件不同、哪些文件相同以及它们位于哪个目录中。
为了做到这一点,我们必须熟悉 diff 命令,因为 diff 命令可以用来解决上述问题。
我们首先来了解一下 diff 命令,它是 difference 的缩写。此命令用于逐行比较两个文件,从而找出它们之间的差异。
我们来探讨一下这种情况:有两个目录 d1 和 d2,这两个目录都包含一些文件。
请考虑以下终端输出,其中描述了这两个目录 −
immukul@192 linux-questions-code % ls -ltr total 0 drwxr-xr-x 5 immukul staff 160 Jul 5 20:03 d1 drwxr-xr-x 4 immukul staff 128 Jul 5 20:03 d2
现在第一个目录 d1 的内容看起来像这样−
immukul@192 d1 % ls -ltr total 0 -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 1.txt -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 3.txt -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 5.txt
现在第一个目录 d2 的内容看起来像这样 −
immukul@192 d2 % ls -ltr total 0 -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 2.txt -rw-r--r-- 1 immukul staff 0 Jul 5 20:03 3.txt
现在我们想知道目录 d1 和 d2 之间的差异,为了打印差异,我们可以使用下面显示的命令 −
diff -q d1 d2 | cut -f2 -d ','
输出
Only in d1: 1.txt Only in d2: 2.txt Only in d1: 5.txt
下面还显示了另一个我们可以使用的命令−
diff -qr d1 d2
输出
Only in d1: 1.txt Only in d2: 2.txt Only in d1: 5.txt
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

