2011年11月5日 星期六

linux中比較文件的指令

#安裝colordiff
sudo apt-get install colordiff


#使用colordiff -y參數表示將文件分左右兩邊做視覺性比較
colordiff -y passwd.old passwd.new


[root@www ~]# diff [-bBi] from-file to-file
選項與參數:
from-file :一個檔名,作為原始比對檔案的檔名;
to-file   :一個檔名,作為目的比對檔案的檔名;
注意,from-file 或 to-file 可以 - 取代,那個 - 代表『Standard input』之意。

-b  :忽略一行當中,僅有多個空白的差異(例如 "about me" 與 "about     me" 視為相同
-B  :忽略空白行的差異。
-i  :忽略大小寫的不同。

範例一:比對 passwd.old 與 passwd.new 的差異:
[root@www test]# diff passwd.old passwd.new
4d3    <==左邊第四行被刪除 (d) 掉了,基準是右邊的第三行
< adm:x:3:4:adm:/var/adm:/sbin/nologin  <==這邊列出左邊(<)檔案被刪除的那一行內容
6c5    <==左邊檔案的第六行被取代 (c) 成右邊檔案的第五行
< sync:x:5:0:sync:/sbin:/bin/sync  <==左邊(<)檔案第六行內容
---
> no six line                      <==右邊(>)檔案第五行內容
# 很聰明吧!用 diff 就把我們剛剛的處理給比對完畢了!
用 diff 比對檔案真的是很簡單喔!不過,你不要用 diff 去比對兩個完全不相干的檔案,因為比不出個啥咚咚! 另外, diff 也可以比對整個目錄下的差異喔!舉例來說,我們想要瞭解一下不同的開機執行等級 (runlevel) 內容有啥不同?假設你已經知道執行等級 3 與 5 的啟動腳本分別放置到 /etc/rc3.d 及 /etc/rc5.d , 則我們可以將兩個目錄比對一下:
[root@www ~]# diff /etc/rc3.d/ /etc/rc5.d/
Only in /etc/rc3.d/: K99readahead_later
Only in /etc/rc5.d/: S96readahead_later

沒有留言:

張貼留言