天天看點

在 Linux 上使用 Meld 比較檔案夾

需要指出的是,本教程中的所有指令和例子都是在 ubuntu 14.04 上測試的,使用的 meld 版本為 3.14.2。

<a target="_blank"></a>

打開 meld 工具,然後選擇 比較檔案夾directory comparison 選項來比較兩個檔案夾。

在 Linux 上使用 Meld 比較檔案夾

compare directories using meld

選擇你要比較的檔案夾:

在 Linux 上使用 Meld 比較檔案夾

select the directories

然後單擊比較compare按鈕,你會看到 meld 像圖中這樣分成兩欄比較目錄,就像檔案比較一樣。

在 Linux 上使用 Meld 比較檔案夾

compare directories visually

分欄會樹形顯示這些檔案夾。你可以在上圖中看到 —— 差別之處,不論是建立的還是被修改過的檔案 —— 都會以不同的顔色高亮顯示。

根據 meld 的官方文檔可以知道,在視窗中看到的每個不同的檔案或檔案夾都會被突出顯示。這樣就很容易看出這個檔案/檔案夾與另一個分欄中對應位置的檔案/檔案夾的差別。

下表是 meld 網站上列出的在比較檔案夾時突出顯示的不同字型大小/顔色/背景等代表的含義。

狀态

表現

含義

相同

正常字型

比較的檔案夾中所有檔案/檔案夾相同。

過濾後相同

斜體

檔案夾中檔案不同,但使用文本過濾器的話,檔案是相同的。

修改過

藍色粗體

比較的檔案夾中這些檔案不同。

建立

綠色粗體

該檔案/檔案夾在這個目錄中存在,但其它目錄中沒有。

缺失

置灰文本,删除線

該檔案/檔案夾在這個目錄中不存在,在在其它某個目錄中存在。

錯誤

黃色背景的紅色粗體

比較檔案時發生錯誤,最常見錯誤原因是檔案權限(例如,meld 無法打開該檔案)和檔案名編碼錯誤。

meld 預設會列出比較檔案夾中的所有内容,即使這些内容沒有任何不同。當然,你也可以在工具欄中單擊相同same按鈕設定 meld 不顯示這些相同的檔案/檔案夾 —— 單擊這個按鈕使其不可用。

在 Linux 上使用 Meld 比較檔案夾

same button

在 Linux 上使用 Meld 比較檔案夾

meld compare buttons

下面是單擊 相同same 按鈕使其不可用的截圖:

在 Linux 上使用 Meld 比較檔案夾

directory comparison without same files

這樣你會看到隻顯示了兩個檔案夾中不同的檔案(建立的和修改過的)。同樣,如果你單擊 建立new 按鈕使其不可用,那麼 meld 就隻會列出修改過的檔案。是以,在比較檔案夾時可以通過這些按鈕自定義要顯示的内容。

你可以使用工具視窗顯示區的上下箭頭來切換選擇是顯示建立的檔案還是修改過的檔案。要打開兩個檔案進行分欄比較,可以輕按兩下檔案,或者單擊箭頭旁邊的 比較compare按鈕。

在 Linux 上使用 Meld 比較檔案夾

meld compare arrow keys

提示 1:如果你仔細觀察,就會看到 meld 視窗的左邊和右邊有一些小條。這些條的目的是提供“簡單的用顔色區分的比較結果”。對每個不同的檔案/檔案夾,條上就有一個小的顔色塊。你可以單擊每一個這樣的小塊跳到它對應的檔案/檔案夾。

提示 2:你總可以分欄比較檔案,然後以你的方式合并不同的檔案,假如你想要合并所有不同的檔案/檔案夾(就是說你想要一個特定的檔案/檔案夾與另一個完全相同),那麼你可以用 複制到左邊copy left和 複制到右邊copy right 按鈕:

在 Linux 上使用 Meld 比較檔案夾

meld copy right part

比如,你可以在左邊的分欄中選擇一個檔案或檔案夾,然後單擊 複制到右邊copy right 按鈕,使右邊對應條目完全一樣。

現在,在視窗的下拉菜單中找到 過濾filters 按鈕,它就在 相同same、建立new 和 修改的modified 這三個按鈕下面。這裡你可以選擇或取消檔案的類型,告知 meld 在比較檔案夾時是否顯示這種類型的檔案/檔案夾。官方文檔解釋說菜單中的這個條目表示“執行檔案夾比較時該類檔案名不會被檢視。”

該清單中條目包括備份檔案,作業系統中繼資料,版本控制檔案、二進制檔案和多媒體檔案。

在 Linux 上使用 Meld 比較檔案夾

meld filters

前面提到的條目也可以通過這樣的方式找到:浏覽-&gt;檔案過濾。你可以通過 編輯-&gt;首選項-&gt;檔案過濾 為這個條目增加新元素(也可以删除已經存在的元素)。

在 Linux 上使用 Meld 比較檔案夾

meld preferences

要建立一個過濾條件,你需要使用一組 shell 符号,下表列出了 meld 支援的 shell 符号:

通配符

比對

*

任何字元 (例如,零個或多個字元)

?

一個字元

[abc]

所列字元中的任何一個

[!abc]

不在所列字元中的任何一個

{cat,dog}

“cat” 或 “dog” 中的一個

最重要的一點是 meld 的檔案名預設大小寫敏感。也就是說,meld 認為 readme 和 readme 與 readme 是不一樣的檔案。

幸運的是,你可以關掉 meld 的大小寫敏感。隻需要打開 浏覽 菜單然後選擇 忽略檔案名大小寫ignore filename case 選項。 

在 Linux 上使用 Meld 比較檔案夾

meld ignore filename case

你是否覺得使用 meld 比較檔案夾很容易呢 —— 事實上,我認為它相當容易。隻有建立一個檔案過濾器會花點時間,但是這不意味着你沒必要學習建立過濾器。顯然,這取決于你的需求。

另外,你甚至可以用 meld 比較三個檔案夾。想要比較三個檔案夾時,你可以通過單擊 三向比較3-way comparison 複選框。今天,我們不介紹怎麼比較三個檔案夾,但它肯定會出現在後續的教程中。

原文釋出時間為:2017-04-29

本文來自雲栖社群合作夥伴“linux中國”

繼續閱讀