2021-05-12 14:32:11
在 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
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-05/143395.htm
相關文章