1>diff命令的功能
linux中diff命令的功能為逐行比較兩個文字檔案,列出其不同之處。它對給出的檔案進行系統的檢查,並顯示出兩個檔案中所有不同的行,不要求事先對檔案進行排序。
2>語法
diff [options] file1 file2
該命令告訴使用者,為了使兩個檔案file1和file2一致,需要修改它們的哪些行。如果用」-」表示file1或file2,則表示標準輸入。如果file1或file2是目錄,那麼diff將使用該目錄中的同名檔案進行比較。
3>[options]主要引數
-b或–ignore-space-change 忽略空格造成的不同。
-b或–ignore-blank-lines 忽略空行造成的不同。
-c:使用綱要輸出格式。
-h:利用試探法加速對大檔案的搜尋。
-i:忽略大小寫的變化。
-n –rcs:輸出rcs格式。
-n或–new-file 在比較目錄時,若檔案a僅出現在某個目錄中,會顯示:only in目錄;檔案a若使用-n引數,則diff會將檔案a與乙個空白的檔案比較。
-r或–recursive 比較子目錄中的檔案。
-u,-u《列數》或–unified=《列數》 以合併的方式來顯示檔案內容的不同。
4>使用方法的例項說明
例如: diff /usr/xu mine
把目錄/usr/xu 中名為mine的檔案與當前目錄中的mine檔案進行比較。
通常輸出由下述形式的行組成:
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4 這些行類似ed命令把filel轉換成file2。字母(a、d和c)之前的行號(n1,n2)是針對file1的,其後面的行號(n3,n4)是針對file2的。字母a、d和c分別表示附加、刪除和修改操作。
在上述形式的每一行的後面跟隨受到影響的若干行,以」<」打頭的行屬於第乙個檔案,以」>」打頭的行屬於第二個檔案。
diff能區別塊和字元裝置檔案以及fifo(管道檔案),不會把它們與普通檔案進行比較。
如果file1和file2都是目錄,則diff會產生很多資訊。
5>diff最常用的功能
diff有很多功能平時我們不常用到,最常用的功能莫過於生成patch檔案了:
diff -urn old/ new/ > mysoft.patch
引數 -u 表示使用 unified 格式,-r 表示比較目錄,-n 表示將不存在的檔案當作空檔案處理,這樣新新增的檔案也會出現在patch檔案中。
然後在需要應用patch的地方使用下述命令即可:
patch -p0 < mysoft.patch
diff的 -y 命令(長格式為 –side-by-side)可以將螢幕分成左右兩部分,來比較兩個檔案之間的差異。許多圖形化的比較工具都有這個功能,但如果只能使用命令列,這個引數就相當有用了。如果要改變左右各部分的寬度,可以通過 -w (–width)引數來指定。
–ignore-blank-lines 引數可以不檢查空白行。這樣dos格式和unix格式的檔案互相比較時,就不至於因為換行符不一致而出現大量的差異。
舉例說明Linux diff 命令
在比較檔案的時候,通常會用基於gui的軟體。很少有人真正會為了這個目的使用命令列工具。雖然說使用命令列來比較檔案 目錄並不像一件小事兒那樣容易,但是如果你是乙個linux使用者,那麼我想你應該知道如何通過命令列比較檔案,因為一旦使用了它,你會認為它絕對是乙個快速的方法。在本篇中,我們將通過一些例項來...
scp命令使用說明
scp是linux常用的命令,它可以方便的進行檔案的傳輸。利用scp進行檔案傳輸時,通過指定的加密演算法還可以提公升傳輸速度。scp secure copy 允許不同的主機之間進行檔案傳輸。scp使用ssh進行資料的傳輸,提供了和ssh相同的身份認證和同一級別的安全策略。從本地複製單個檔案 scp ...
Trap命令使用說明
trap命令用於指定在接收到訊號後將要採取的行動。trap命令的一種常見用途是在指令碼程式被中斷時完成清理工作。可以使用trap l來檢視具體訊號列表。trap捕捉到訊號之後,可以有三種響應方式 trap commands signal listtrap signal listtrap signal...