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