僅針對特定型別檔案的 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 很容易。

更新於:2022-12-19

364 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告