首頁 > 文字處理與搜尋 > diff

diff: 比較兩個檔案的差異 (統一格式)

diff 命令用於分析和輸出兩個檔案或目錄之間的差異。特別是 `-u` (Unified) 選項,它以統一格式顯示結果,同時顯示變更的行及其周圍的上下文,這在審查程式碼變更或在版本控制系統中追蹤變更歷史時非常有用。此格式有助於直觀地理解哪些部分被新增、刪除或修改。

概述

diff -u 以統一格式比較兩個檔案的內容並輸出差異。此格式顯示變更的行以及周圍幾行的上下文,因此可以輕鬆了解哪些部分是如何變更的。這對於原始碼管理或追蹤設定檔變更歷史至關重要。

主要特點

  • 以統一格式顯示差異
  • 提供變更的上下文
  • 適用於程式碼審查和版本控制
  • 清晰區分新增/刪除/修改的內容

主要選項

diff 命令提供多種選項,這裡我們將說明與 `-u` 選項一起常用的選項。

輸出格式

比較行為

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`diff` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

使用 diff -u 命令的各種範例。

比較兩個檔案的統一格式差異

diff -u file1.txt file2.txt

以統一格式輸出 file1.txt 和 file2.txt 的差異。

遞迴比較兩個目錄中的檔案

diff -ur dir1 dir2

遞迴地比較 dir1 和 dir2 目錄中的所有檔案,並以統一格式輸出。

忽略空格變化比較檔案

diff -uw file1.txt file2.txt

忽略檔案內容中的空格字元 (空格、tab 等) 變化,僅比較實際內容差異。

忽略特定模式的行比較檔案

diff -u -I '^#' config1.conf config2.conf

忽略註解行 (以 # 開頭的行),比較 config1.conf 和 config2.conf 檔案的差異。

將統一格式輸出儲存為補丁檔案

diff -u old_file.txt new_file.txt > changes.patch

以統一格式輸出兩個檔案的差異,並將結果儲存到 'changes.patch' 檔案。此檔案可透過 'patch' 命令應用。

提示與注意事項

有效解釋和利用 diff -u 輸出結果的提示。

統一格式輸出解釋方法

diff -u 的輸出使用以下符號來表示變更:

  • --- (三個連字元): 表示原始 (old) 檔案的路徑和時間戳。
  • +++ (三個加號): 表示新 (new) 檔案的路徑和時間戳。
  • @@ -OLD_START,OLD_COUNT +NEW_START,NEW_COUNT @@: '塊標頭',表示變更發生的檔案行號和範圍。
  • - (連字元): 僅存在於原始檔案的行,表示已刪除的行。
  • + (加號): 僅存在於新檔案的行,表示已新增的行。
  • (空格): 兩個檔案都存在的行,表示未變更的上下文行。

與 patch 命令的整合

diff -u 生成的輸出可用作 `patch` 命令的輸入。這使得您可以輕鬆地將一個檔案的變更應用到另一個檔案或還原。例如,使用 `diff -u old_file new_file > changes.patch` 命令生成補丁檔案後,可以使用 `patch -p0 < changes.patch` 命令將 `changes.patch` 的變更應用到 `old_file`,使其與 `new_file` 相同。


相關命令

功能上相似或經常一起使用的命令。


相同類別命令