如何在 Linux/Ubuntu 上比較兩個目錄的內容
如果您曾經需要檢查 Ubuntu 機器上兩個資料夾之間的差異,您可能很快就會感到不知所措,或者最終只能手動翻閱文件。這就是該diff
命令的真正優勢——它專為此類工作而構建,雖然它非常簡單易用,但如何有效地使用它卻有一些細微的差別。基本上,一旦運行它,您就能輕鬆查看哪些檔案遺失、哪些檔案相同以及哪些檔案有差異(包括子目錄)。非常適合備份、調試,或僅僅滿足對兩個目錄之間究竟有多相似或多不同的好奇心,所有這些都可以在終端上完成。
如何在 Ubuntu 中比較兩個資料夾
使用帶有遞歸和簡要選項的 diff 命令
diff
這是最常用的方法,在大多數設定下都能很好地工作。基本想法是使用-q和-r選項運行,這兩個選項告訴 diff 只報告檔案是否不同(而不是如何不同),並以遞歸方式執行,覆蓋所有子資料夾。例如:
diff -qr ~/folder1 ~/folder2
此指令會比較主目錄中的folder1和folder2。您可以將路徑替換為您正在使用的任何目錄。在某些設定中,您可能需要指定完整路徑,例如/home/username/Projects/folder1
,尤其是當您不在正確的目錄中時。
為什麼它有幫助:它可以快速標記不同或遺失的文件,這通常足以了解目錄的整體狀態。
何時使用:當您想要快速概覽時 – 無需查看差異的每一行,只需查看不同之處的摘要。
預期結果:您將看到類似Only in folder1: file.txt
或 的行Files folder1/file.txt and folder2/file.txt differ
。
有時,一個資料夾可能看起來相同,但實際上存在細微的差異——這個命令可以輕鬆捕捉這些差異。在一個設定中,我運行它,它給出了明顯的差異;而在另一個設定中,輸出結果有點令人不知所措——取決於數據量。
查看內容變更的詳細差異
如果你需要更多資訊(例如具體哪些行有所不同),可以跳過-q選項。只需運行:
diff -r ~/folder1 ~/folder2
這個工具會逐行顯示文件中不一致的差異。它並非總是必需的,但當你需要精確定位程式碼或配置中哪些地方發生了變化時,它非常有用。
請記住,在非常大的資料夾中,這可能會產生大量的輸出 – 有時值得將其重定向到檔案或僅使用 GUI 工具,但對於大多數快速檢查來說,這是可以的。
額外提示和故障排除
- 路徑很重要——如果您不在同一位置,請務必仔細檢查是否將正確的目錄與絕對路徑進行比較。
- 如果輸出噪音太大,請加入–brief標誌以獲得更簡單的結果:
- 您也可以探索其他選項(如man diff)來查看滿足特定需求的各種標誌。
- 有時,權限或符號連結會導致問題 – 如果需要,請執行命令
sudo
,或仔細檢查您的資料夾存取權限。
diff --brief -r folderA folderB
包起來
這應該能為你在 Ubuntu 中快速比較目錄打下堅實的基礎。它並非完美——如果資料夾很大,輸出結果可能會比較密集——但它可靠、快速,而且不需要額外的應用程式。一旦你習慣了它,你就會驚嘆以前沒有它的時候你是怎麼過的。
常見問題
diff 命令到底扮演什麼角色?
它會逐行比較文件,顯示不同之處。當您輸入目錄時,它會掃描其中的所有內容,讓您無需手動開啟每個檔案即可發現缺失、新增或變更的檔案。
我可以只比較特定的文件或子資料夾嗎?
當然可以。只需在 diff 命令中提供兩個檔案或資料夾的相對路徑,例如diff file1.txt file2.txt
或diff -r folderA/subfolder folderB/subfolder
。
是否有用於比較資料夾的圖形替代方案?
是的。像Meld或Beyond Compare 這樣的工具可以使其視覺化,如果你更喜歡點擊命令列,可能會更容易。但對於快速檢查來說,在終端機中劃線操作仍然可以完成。
- 在比較差異之前,請使用ls或檔案管理器仔細檢查目錄。
- 如果您的目錄很大,請考慮過濾輸出或添加更多選項。