如何在 Linux 中使用 diff 命令比较两个目录中可用的文件?


让我们考虑一个案例,我们有两个目录,例如,d1d2,这两个目录都包含一些文件,这些文件可能相同也可能不同。现在我们想要比较这两个目录中存在的文件,通过比较,我们需要打印出哪些文件不同,哪些文件相同以及在哪个目录中。

为了做到这一点,我们必须熟悉 diff 命令,因为 diff 命令可以用来解决上述问题。

让我们首先探索 diff 命令,它是 difference 的缩写。此命令用于查找两个文件之间的差异,因为它逐行比较这两个文件。

让我们探索一个案例,我们有两个目录 d1d2,这两个目录都包含一些文件。

考虑下面的终端输出,它描绘了这两个目录:

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

更新于: 2021-07-29

862 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告