仅针对特定类型文件的 Linux 目录差异比较
本文将学习如何在 Linux 中仅对特定类型的文件进行目录差异比较。
摘要
在 Linux 中,一个常用的操作是比较文件并识别其差异。这在比较复杂的代码或配置文件时非常有用。Linux 有一个强大的内置工具称为 **diff**,用于比较目录,它没有错误并且节省时间。
以下是一些示例,将帮助我们学习如何应用这些有趣且灵活的命令:
diff 命令
使用 diff 命令,我们可以逐行比较两个文件的内容,如果存在任何差异,它将列出差异以及对应的行号。此外,它还可用于对比两个目录的内容。
在 shell 脚本中,当我们希望根据两个文件的比较执行操作时,diff 命令至关重要。为了快速比较两个目录,我们将使用以下示例中的 diff 命令:
示例
$ diff dev home
输出
Only in home: cg Only in dev: core Only in dev: fd Only in dev: full Only in dev: mqueue Only in dev: null Only in home: objc Only in dev: ptmx Only in dev: pts Only in dev: random Only in home: redxx Only in dev: shm Only in dev: stderr Only in dev: stdin Only in dev: stdout Only in dev: tty Only in dev: urandom Only in dev: zero
从输出中可以看出,上面列出了两个目录的内容,并显示了它们的不同之处。
在另一个示例中,我们将看到如何使用 diff 命令的不同变体。在这里,我们将使用“-y”以侧面视图的形式获取信息,这将更好地查看和理解差异:
示例
$ diff -y tclConfig.sh tclooConfig.sh
输出
TCL_MAJOR_VERSION='8' | TCLOO_LIB_SPEC="7" TCL_MINOR_VERSION='6' | TCLOO_STUB_LIB_SPEC="4" TCL_PATCH_LEVEL='.8' | TCLOO_INCLUDE_SPEC="6" TCL_VERSION='8.6' | TCLOO_PRIVATE_INCLUDE="1"
这是另一个示例,展示了如何使用 diff 命令的不同变体。在这里,我们将使用“-u”来显示没有额外上下文行的输出,这将提供有关差异的具体信息:
示例
$ diff -u file1.sh file2.sh
输出
––– file1.sh 2019-05-11 15:50:49.000000000 +0000 +++ file2.sh 2019-05-11 15:50:43.000000000 +0000 @@ -1 3, +1 5 It will create shell variables This script is intended to be included The information in this file is specific +These are mostly empty +All libraries and include files are just part of Tcl
在输出中,我们可以清楚地注意到上一步输出中两个文件的差异。正如我们所知,file2 在结尾处有两行多余的行。这些行在输出中以其前面带有加号 (+) 来突出显示。由于 file1 在上面的命令中位于 file2 之前,因此 diff 命令是从 file1 的角度比较文件的。
结论
在本文中,我们学习了 diff 命令的用例。首先,我们看到了 diff 命令的实际用途,即如何使用它来区分两个目录。
这些是 diff 命令在 Linux 中使用的场景。我希望您发现这些命令示例有用,并且学习和使用 Linux 很容易。
广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP