如何在Linux上使用Meld比較文件夾
我們已經(jīng)從一個(gè)新手的角度了解了 Meld (包括 Meld 的安裝),我們也提及了一些 Meld 中級(jí)用戶常用的小技巧。如果你有印象,在新手教程中,我們說過 Meld 可以比較文件和文件夾。已經(jīng)討論過怎么比較文件,今天,我們來看看 Meld 怎么比較文件夾。
需要指出的是,本教程中的所有命令和例子都是在 Ubuntu 14.04 上測(cè)試的,使用的 Meld 版本為 3.14.2。
用 Meld 比較文件夾
打開 Meld 工具,然后選擇 比較文件夾Directory comparison 選項(xiàng)來比較兩個(gè)文件夾。
Compare directories using Meld
選擇你要比較的文件夾:
select the directories
然后單擊比較Compare 按鈕,你會(huì)看到 Meld 像圖中這樣分成兩欄比較目錄,就像文件比較一樣。
Compare directories visually
分欄會(huì)樹形顯示這些文件夾。你可以在上圖中看到 —— 區(qū)別之處,不論是新建的還是被修改過的文件 —— 都會(huì)以不同的顏色高亮顯示。
根據(jù) Meld 的官方文檔可以知道,在窗口中看到的每個(gè)不同的文件或文件夾都會(huì)被突出顯示。這樣就很容易看出這個(gè)文件/文件夾與另一個(gè)分欄中對(duì)應(yīng)位置的文件/文件夾的區(qū)別。
下表是 Meld 網(wǎng)站上列出的在比較文件夾時(shí)突出顯示的不同字體大小/顏色/背景等代表的含義。
狀態(tài) | 表現(xiàn) | 含義 |
---|---|---|
相同 | 正常字體 | 比較的文件夾中所有文件/文件夾相同。 |
過濾后相同 | 斜體 | 文件夾中文件不同,但使用文本過濾器的話,文件是相同的。 |
修改過 | 藍(lán)色粗體 | 比較的文件夾中這些文件不同。 |
新建 | 綠色粗體 | 該文件/文件夾在這個(gè)目錄中存在,但其它目錄中沒有。 |
缺失 | 置灰文本,刪除線 | 該文件/文件夾在這個(gè)目錄中不存在,在在其它某個(gè)目錄中存在。 |
錯(cuò)誤 | 黃色背景的紅色粗體 | 比較文件時(shí)發(fā)生錯(cuò)誤,最常見錯(cuò)誤原因是文件權(quán)限(例如,Meld 無法打開該文件)和文件名編碼錯(cuò)誤。 |
Meld 默認(rèn)會(huì)列出比較文件夾中的所有內(nèi)容,即使這些內(nèi)容沒有任何不同。當(dāng)然,你也可以在工具欄中單擊相同Same按鈕設(shè)置 Meld 不顯示這些相同的文件/文件夾 —— 單擊這個(gè)按鈕使其不可用。
same button
Meld compare buttons
下面是單擊 相同Same 按鈕使其不可用的截圖:
Directory Comparison without same files
這樣你會(huì)看到只顯示了兩個(gè)文件夾中不同的文件(新建的和修改過的)。同樣,如果你單擊 新建New 按鈕使其不可用,那么 Meld 就只會(huì)列出修改過的文件。所以,在比較文件夾時(shí)可以通過這些按鈕自定義要顯示的內(nèi)容。
你可以使用工具窗口顯示區(qū)的上下箭頭來切換選擇是顯示新建的文件還是修改過的文件。要打開兩個(gè)文件進(jìn)行分欄比較,可以雙擊文件,或者單擊箭頭旁邊的 比較Compare按鈕。
meld compare arrow keys
提示 1:如果你仔細(xì)觀察,就會(huì)看到 Meld 窗口的左邊和右邊有一些小條。這些條的目的是提供“簡(jiǎn)單的用顏色區(qū)分的比較結(jié)果”。對(duì)每個(gè)不同的文件/文件夾,條上就有一個(gè)小的顏色塊。你可以單擊每一個(gè)這樣的小塊跳到它對(duì)應(yīng)的文件/文件夾。
提示 2:你總可以分欄比較文件,然后以你的方式合并不同的文件,假如你想要合并所有不同的文件/文件夾(就是說你想要一個(gè)特定的文件/文件夾與另一個(gè)完全相同),那么你可以用 復(fù)制到左邊Copy Left和 復(fù)制到右邊Copy Right 按鈕:
meld copy right part
比如,你可以在左邊的分欄中選擇一個(gè)文件或文件夾,然后單擊 復(fù)制到右邊Copy Right 按鈕,使右邊對(duì)應(yīng)條目完全一樣。
現(xiàn)在,在窗口的下拉菜單中找到 過濾Filters 按鈕,它就在 相同Same、新建New 和 修改的Modified 這三個(gè)按鈕下面。這里你可以選擇或取消文件的類型,告知 Meld 在比較文件夾時(shí)是否顯示這種類型的文件/文件夾。官方文檔解釋說菜單中的這個(gè)條目表示“執(zhí)行文件夾比較時(shí)該類文件名不會(huì)被查看。”
該列表中條目包括備份文件,操作系統(tǒng)元數(shù)據(jù),版本控制文件、二進(jìn)制文件和多媒體文件。
Meld filters
前面提到的條目也可以通過這樣的方式找到:瀏覽->文件過濾。你可以通過 編輯->首選項(xiàng)->文件過濾 為這個(gè)條目增加新元素(也可以刪除已經(jīng)存在的元素)。
Meld preferences
要新建一個(gè)過濾條件,你需要使用一組 shell 符號(hào),下表列出了 Meld 支持的 shell 符號(hào):
通配符 | 匹配 |
---|---|
* | 任何字符 (例如,零個(gè)或多個(gè)字符) |
? | 一個(gè)字符 |
[abc] | 所列字符中的任何一個(gè) |
[!abc] | 不在所列字符中的任何一個(gè) |
{cat,dog} | “cat” 或 “dog” 中的一個(gè) |
最重要的一點(diǎn)是 Meld 的文件名默認(rèn)大小寫敏感。也就是說,Meld 認(rèn)為 readme 和 ReadMe 與 README 是不一樣的文件。
幸運(yùn)的是,你可以關(guān)掉 Meld 的大小寫敏感。只需要打開 瀏覽 菜單然后選擇 忽略文件名大小寫 Ignore Filename Case 選項(xiàng)。
Meld ignore filename case
結(jié)論
你是否覺得使用 Meld 比較文件夾很容易呢 —— 事實(shí)上,我認(rèn)為它相當(dāng)容易。只有新建一個(gè)文件過濾器會(huì)花點(diǎn)時(shí)間,但是這不意味著你沒必要學(xué)習(xí)創(chuàng)建過濾器。顯然,這取決于你的需求。
另外,你甚至可以用 Meld 比較三個(gè)文件夾。想要比較三個(gè)文件夾時(shí),你可以通過單擊 三向比較3-way comparison 復(fù)選框。今天,我們不介紹怎么比較三個(gè)文件夾,但它肯定會(huì)出現(xiàn)在后續(xù)的教程中。