详解 Linux 中的 diff 命令及示例

系统教程10个月前发布 faker
13 0 0

详解 Linux 中的 diff 命令及示例

文件比较在 Linux 中起着重要的作用,特别是对于程序员和 Linux 系统管理员。例如,如果您想找到两个源代码文件之间的差异来开发补丁,那么您需要一个文件比较工具来简化这个过程。Linux 中有几个命令行工具可用于比较两个文件。其中,diff 是一个非常流行的命令行实用程序,它提供了各种选项来获取两个文件之间的差异。

在这篇文章中,我们将向您展示如何在 Linux 终端中比较两个文件。

先决条件

  • 运行 Linux 的服务器
  • 在您的服务器上配置的 root 密码

创建云服务器

首先,登录到您的云服务器。创建一个新服务器,选择任何具有至少 1GB RAM 的 Linux 操作系统。通过 SSH 连接到您的云服务器并使用页面顶部突出显示的凭据登录。

基本语法

diff 命令的基本语法如下所示:

diff [OPTION] FILES

每个选项的简要说明如下所示:

  • -s 两个文件相同时报告
  • -c 在上下文模式下显示输出
  • -q 仅在文件不同时报告
  • -y 在两列中显示差异输出
  • -r 递归比较任何子目录
  • -i 忽略文件内容的大小写差异
  • -w 忽略所有空格
  • –ignore-file-name-case 比较文件名时忽略大小写
  • –no-ignore-file-name-case 比较文件名时考虑一种情况

在 Linux 中创建文件

要在 Linux 中执行文件比较,您需要在系统中创建一些文件。

让我们创建一个名为 file1.txt 的第一个文件:

添加以下内容:

11 12 13 14 15 16 17 18 19
eveven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen
In this file, we added some numbers in text and numeric form
www.LinuxMI.com

再创建一个名为 file2.txt 的第二个文件:

添加以下内容:

10 12 3 14 8 16 7 18 19
five twelve eight fourteen fifteen nine seventeen one ninteen
In this file, we added some numbers in text and numeric form
www.LinuxMI.com

最后让我们创建第三个名为 file3.txt 的文件,其内容类似于 file1.txt:

添加以下内容:

11 12 13 14 15 16 17 18 19
eveven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen
In this file, we added some numbers in text and numeric form
www.LinuxMI.com

打印两个文件之间的差异

至此,三个文件已准备好与 diff 命令一起实际使用。

现在,要打印两个名为file1.txt和file2.txt的文件之间的差异,请运行:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
diff file1.txt file2.txt

您将获得以下输出:

1,2c1,2
< 11 12 13 14 15 16 17 18 19
< eveven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen
---
> 10 12 3 14 8 16 7 18 19
> five twelve eight fourteen fifteen nine seventeen one ninteen

详解 Linux 中的 diff 命令及示例

如您所见,diff 命令省略了两个文件之间的所有相似之处,只显示了它们的不同之处。

如果要在上下文模式下显示输出,请使用-c选项:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
diff -c file1.txt file2.txt

您将获得以下输出:

*** file1.txt  2022-05-07 22:37:23.371594485 +0800
--- file2.txt 2022-05-07 22:37:15.699594796 +0800
***************
*** 1,4 ****
! 11 12 13 14 15 16 17 18 19
! eveven twelve thirteen fourteen fifteen sixteen seventeen eighteen ninteen
In this file, we added some numbers in text and numeric form
www.LinuxMI.com
--- 1,4 ----
! 10 12 3 14 8 16 7 18 19
! five twelve eight fourteen fifteen nine seventeen one ninteen
In this file, we added some numbers in text and numeric form
www.LinuxMI.com

详解 Linux 中的 diff 命令及示例

使用 diff 命令查找相似文件

您可以在 diff 命令中使用 -s 标志来检查两个文件是否相似。

运行以下命令比较 file1.txt 和 file3.txt:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
diff -s file1.txt file3.txt

您应该看到以下输出:

文件 file1.txt 和 file3.txt 相同

详解 Linux 中的 diff 命令及示例

使用 Diff 命令查找不同的文件

您可以在 diff 命令中使用-q标志来检查两个文件是否不同。

运行以下命令来比较file1.txt和file2.txt:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
diff -q file1.txt file2.txt

您应该看到以下输出:

文件 file1.txt 和 file2.txt 不同

详解 Linux 中的 diff 命令及示例

在并排视图中显示输出

如果您比较两个文件并希望在并排视图中显示文件差异,请使用-y选项。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                                                                  
diff -y file1.txt file2.txt

您应该看到以下输出:

详解 Linux 中的 diff 命令及示例

如果您想忽略上述输出中两个文件之间的相似性,请运行以下命令:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                                                                  
diff -y --suppress-common-lines file1.txt file2.txt

您应该看到以下输出:

详解 Linux 中的 diff 命令及示例

结论

在这篇文章中,我们解释了如何在 Linux 中使用 diff 命令比较两个文件。我们还演示了几个用例来解释如何在不同的条件下使用 diff 命令。

© 版权声明

相关文章