Linux中國

在 Linux 上使用 Meld 比較文件夾

我們已經從一個新手的角度了解Meld (包括 Meld 的安裝),我們也提及了一些 Meld 中級用戶常用的小技巧。如果你有印象,在新手教程中,我們說過 Meld 可以比較文件和文件夾。已經討論過怎麼比較文件,今天,我們來看看 Meld 怎麼比較文件夾。

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

用 Meld 比較文件夾

打開 Meld 工具,然後選擇 比較文件夾 Directory comparison 選項來比較兩個文件夾。

Compare directories using Meld

選擇你要比較的文件夾:

select the directories

然後單擊 比較 Compare 按鈕,你會看到 Meld 像圖中這樣分成兩欄比較目錄,就像文件比較一樣。

Compare directories visually

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

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

下表是 Meld 網站上列出的在比較文件夾時突出顯示的不同字體大小/顏色/背景等代表的含義。

狀態 表現 含義
相同 正常字體 比較的文件夾中所有文件/文件夾相同。
過濾後相同 斜體 文件夾中文件不同,但使用文本過濾器的話,文件是相同的。
修改過 藍色粗體 比較的文件夾中這些文件不同。
新建 綠色粗體 該文件/文件夾在這個目錄中存在,但其它目錄中沒有。
缺失 置灰文本,刪除線 該文件/文件夾在這個目錄中不存在,在在其它某個目錄中存在。
錯誤 黃色背景的紅色粗體 比較文件時發生錯誤,最常見錯誤原因是文件許可權(例如,Meld 無法打開該文件)和文件名編碼錯誤。

Meld 默認會列出比較文件夾中的所有內容,即使這些內容沒有任何不同。當然,你也可以在工具欄中單擊 相同 Same 按鈕設置 Meld 不顯示這些相同的文件/文件夾 —— 單擊這個按鈕使其不可用。

same button

Meld compare buttons

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

Directory Comparison without same files

這樣你會看到只顯示了兩個文件夾中不同的文件(新建的和修改過的)。同樣,如果你單擊 新建 New 按鈕使其不可用,那麼 Meld 就只會列出修改過的文件。所以,在比較文件夾時可以通過這些按鈕自定義要顯示的內容。

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

meld compare arrow keys

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

提示 2:你總可以分欄比較文件,然後以你的方式合併不同的文件,假如你想要合併所有不同的文件/文件夾(就是說你想要一個特定的文件/文件夾與另一個完全相同),那麼你可以用 複製到左邊 Copy Left 複製到右邊 Copy Right 按鈕:

meld copy right part

比如,你可以在左邊的分欄中選擇一個文件或文件夾,然後單擊 複製到右邊 Copy Right 按鈕,使右邊對應條目完全一樣。

現在,在窗口的下拉菜單中找到 過濾 Filters 按鈕,它就在 相同 Same 新建 New 修改的 Modified 這三個按鈕下面。這裡你可以選擇或取消文件的類型,告知 Meld 在比較文件夾時是否顯示這種類型的文件/文件夾。官方文檔解釋說菜單中的這個條目表示「執行文件夾比較時該類文件名不會被查看。」

該列表中條目包括備份文件,操作系統元數據,版本控制文件、二進位文件和多媒體文件。

Meld filters

前面提到的條目也可以通過這樣的方式找到:瀏覽->文件過濾。你可以通過 編輯->首選項->文件過濾 為這個條目增加新元素(也可以刪除已經存在的元素)。

Meld preferences

要新建一個過濾條件,你需要使用一組 shell 符號,下表列出了 Meld 支持的 shell 符號:

通配符 匹配
* 任何字元 (例如,零個或多個字元)
? 一個字元
[abc] 所列字元中的任何一個
[!abc] 不在所列字元中的任何一個
{cat,dog} 「cat」 或 「dog」 中的一個

最重要的一點是 Meld 的文件名默認大小寫敏感。也就是說,Meld 認為 readme 和 ReadMe 與 README 是不一樣的文件。

幸運的是,你可以關掉 Meld 的大小寫敏感。只需要打開 瀏覽 菜單然後選擇 忽略文件名大小寫 Ignore Filename Case 選項。 Meld ignore filename case

結論

你是否覺得使用 Meld 比較文件夾很容易呢 —— 事實上,我認為它相當容易。只有新建一個文件過濾器會花點時間,但是這不意味著你沒必要學習創建過濾器。顯然,這取決於你的需求。

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

via: https://www.howtoforge.com/tutorial/how-to-perform-directory-comparison-using-meld/

作者:Ansh 譯者:vim-kakali 校對:jasminepeng

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國