diff
語法
diff [options] ... files
一行一行的比較文件,投队,是不是感覺Torvalds也復用了些什么枫疆?
參數(shù)
-i --ignore-case
忽略文件內容中的大小寫差異。--ignore-file-name-case
比較文件名時忽略大小寫敷鸦。--no-ignore-file-name-case
比較文件名時考慮大小寫息楔。-b --ignore-space-change
忽略空白字符。-w --ignore-all-space
忽略所有空白扒披。-B --ignore-blank-lines
忽略行全部空白行值依。-I RE --ignore-matching-lines=RE
忽略所有行都匹配RE(指定字符)的。-a --text
將所有文件視為文本碟案。-c -C NUM --context[=NUM]
-C 復制的上下文的輸出NUM(默認3)行, -c 輸出全部愿险。-u -U NUM --unified[=NUM]
-U 輸出統(tǒng)一上下文的NUM行(默認為3行),-u 輸出全部蟆淀。--label LABEL
使用LABEL而不是文件名-p --show-c-function
若比較的文件為C語言的程序碼文件時拯啦,顯示差異所在的函數(shù)名稱澡匪。-F RE --show-function-line=RE
顯示最近匹配RE(指定字符)的行。-q --brief
僅輸出文件是否不同褒链。-e --ed
此參數(shù)的輸出格式可用于ed的script文件唁情。--normal
僅輸出普通的一種比較-n --rcs
將比較結果以RCS的格式來顯示。-y --side-by-side
以并列的方式顯示文件的異同之處甫匹。-W NUM --width=NUM
在使用-y參數(shù)時甸鸟,指定欄寬(默認130)。--left-column
在使用-y參數(shù)時兵迅,僅指定左邊欄寬抢韭。--suppress-common-lines
在使用-y參數(shù)是,不輸出無差別內容行恍箭。-D NAME --ifdef=NAME
輸出合并文件以顯示“#ifdef NAME”差異刻恭。-l --paginate
將結果交由pr程序來分頁。-t --expand-tabs
展開tab輸出為空格扯夭。-T --initial-tab
在每行前面加上tab字符以便對齊鳍贾。-r --recursive
遞歸地比較找到的任何子目錄。-N --new-file
將缺少的文件視為空交洗。--unidirectional-new-file
將缺少的第一個文件視為空骑科。-s --report-identical-files
當兩個文件相同時報告。-x PAT --exclude=PAT
不比較選項中所指定的文件或目錄构拳。-X FILE --exclude-from=FILE
排除與文件中的任何模式匹配的文件咆爽。-S FILE --starting-file=FILE
在比較目錄時,從指定的文件開始比較置森。--from-file=FILE1
將FILE1與所有操作進行比較斗埂。FILE1可以是目錄。--to-file=FILE2
將所有操作與FILE2進行比較暇藏。FILE2可以是目錄蜜笤。-d --minimal
試圖尋找較小的改變濒蒋。--speed-large-files
假設有大文件和許多零散的小更改盐碱。-v --version
輸出版本信息。--help
輸出幫助信息
Example
-
diff file1 file2
沒有任何參數(shù)比較兩個文件沪伙。
zzw:temp zzw$ diff file1 file2 1,2c1,2 < file1 < a --- > file2 > A 4c4 < line4 --- > Line4 zzw:temp zzw$ cat file1 file1 a line3 line4 zzw:temp zzw$ cat file2 file2 A line3 Line4
-
diff -i file1 file2
忽略大小寫比較
zzw:temp zzw$ diff -i file1 file2 1c1 < file1 --- > file2
-
diff -I ine file1 file2
忽略行中包含了ine的瓮顽,這里
line4
和Line4
的比較就和-i
效果一樣了zzw:temp zzw$ diff -I ine file1 file2 1,2c1,2 < file1 < a --- > file2 > A
-
diff -u file1 file2
以合并的方式標識不同,是不是很熟悉围橡。
zzw:temp zzw$ diff -u file1 file2 --- file1 2020-03-21 23:56:50.000000000 +0800 +++ file2 2020-03-21 23:56:59.000000000 +0800 @@ -1,4 +1,4 @@ -file1 -a +file2 +A line3 -line4 +Line4
-
diff -c file1 file2
標識每行不同暖混,不同的行前面有
!
。zzw:temp zzw$ diff -c file1 file2 *** file1 2020-03-21 23:56:50.000000000 +0800 --- file2 2020-03-21 23:56:59.000000000 +0800 *************** *** 1,4 **** ! file1 ! a line3 ! line4 --- 1,4 ---- ! file2 ! A line3 ! Line4
-
diff -u --label LABEL file1 file2
使用
--label
標簽后file1的文件名就變成了自定義的LABELzzw:temp zzw$ diff -u --label LABEL file1 file2 --- LABEL +++ file2 2020-03-22 00:57:31.000000000 +0800 @@ -1,4 +1,4 @@ -file1 -a +file2 +A line3 -line4 +Line4
-
diff -w file1 file2
忽略所有的空白符翁授,第五行添加了一個tab符在
file1
中.zzw:temp zzw$ diff -w file1 file2 1,2c1,2 < file1 < a --- > file2 > A 4c4 < line4 --- > Line4 zzw:temp zzw$ cat file1 file1 a line3 line4 line5 zzw:temp zzw$ cat file2 file2 A line3 Line4 line5
-
diff -q file1 file2
僅僅輸出兩文件是否不同拣播。
zzw:temp zzw$ diff -q file1 file2 Files file1 and file2 differ
-
diff -n file1 file2
zzw:temp zzw$ diff -n file1 file2 d1 2 a2 2 file2 A d4 2 a5 2 Line4 line5
-
diff -y file1 file2
以并列的方式顯示晾咪,
|
代表有差別zzw:temp zzw$ diff -y file1 file2 file1 | file2 a | A line3 line3 line4 | Line4 line5 | line5
-
diff -y --suppress-common-lines file1 file2
--suppress-common-lines
不會輸出line3,因為內容一樣贮配。zzw:temp zzw$ diff -y --suppress-common-lines file1 file2 file1 | file2 a | A line4 | Line4 line5 | line5
-
diff -s file3 file4
當兩個文件相同是顯示信息谍倦,否則顯示不同。不加
-s
情形下泪勒,兩文件想不無任何輸出信息昼蛀。zzw:temp zzw$ diff -s file3 file4 Files file3 and file4 are identical
-
diff -v
輸出版本信息。
zzw:temp zzw$ diff -v diff (GNU diffutils) 2.8.1 Copyright (C) 2002 Free Software Foundation, Inc. This program comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of this program under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING. Written by Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, and Len Tower.