1. 程式人生 > >Linux下Diff命令

Linux下Diff命令

普通 命令 圖形化 標準輸入 們的 sina 工具 文件 內容

一般正常比較兩個文件用vimdiff,算是直接進入vim界面,如果比較兩個文件夾下面的文件,可以用diff,註意,這裏只會比較文件夾下面的同名文件,他會列出不一樣的點.

參考Linux下Diff命令使用方法

diff

Linux中Diff命令的功能為逐行比較兩個文本文件,列出其不同之處。它對給出的文件進行系統的檢查,並顯示出兩個文件中所有不同的行,不要求事先對文件進行排序。

  1》Diff命令的功能

  Linux中Diff命令的功能為逐行比較兩個文本文件,列出其不同之處。它對給出的文件進行系統的檢查,並顯示出兩個文件中所有不同的行,不要求事先對文件進行排序。

  2》語法

  diff [options] file1 file2

  該命令告訴用戶,為了使兩個文件file1和file2一致,需要修改它們的哪些行。如果用”-”表示file1或file2,則表示標準輸入。如果file1或file2是目錄,那麽diff將使用該目錄中的同名文件進行比較。

  3》[options]主要參數

  -a:將所有文件當作文本文件來處理。

  -b或–ignore-space-change  忽略空格造成的不同。

  -B或–ignore-blank-lines  忽略空行造成的不同。

  -c:使用綱要輸出格式。

  -H:利用試探法加速對大文件的搜索。

  -I:忽略大小寫的變化。

  -n –rcs:輸出RCS格式。

  -N或–new-file  在比較目錄時,若文件A僅出現在某個目錄中,www.linuxidc.com會顯示: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命令