diff命令比較兩個(gè)不同的文件或不同目錄下的兩個(gè)同名文件.在使用diff時(shí),可以用選項(xiàng)來(lái)定制輸出格式.patch程序?qū)⒆x取diff的輸出和所比較
文件中的一個(gè)來(lái)重新生成另一個(gè).diff手冊(cè)的作者寫道:"如果你認(rèn)為diff是通過(guò)從一個(gè)文件中減去另一個(gè)來(lái)生成這兩個(gè)文件的差別文件,那就可以認(rèn)為
patch是使用這個(gè)差別文件和其中的一個(gè)源文件來(lái)生成另一個(gè)源文件".
diff命令的一般語(yǔ)法為:
diff
[option] srcfile
dstfile
diff在運(yùn)行時(shí)試圖找到在srcfile和dstfile里都一樣的很多連續(xù)行,在碰到srcfile和dstfile里不一樣的行時(shí)運(yùn)行被打打斷,這些有差別的行稱為塊(hunk).
diff的命令行選項(xiàng)合參數(shù)
選項(xiàng)
描述
-a 將所有的文件看作文本,既使文件看起來(lái)像是二進(jìn)制的也不例外,并且進(jìn)行逐行比較
-b
忽略塊中空白數(shù)目的改變
-B 忽略插入或刪除空行造成的改變
-c
產(chǎn)生"上下文"(context)格式的輸出
-C[num] 產(chǎn)生"上下文"(context)格式的輸出,顯示塊前后num行的內(nèi)容,如果不指定num的值,則顯示塊前后3行的內(nèi)容
-H
修改diff處理大文件的方式
-i 忽略大小寫,同樣對(duì)待大寫和小寫字母
-I
regexp 忽略插入或刪除與正則表達(dá)式regexp匹配的行
-l 將輸出結(jié)果通過(guò)pr命令處理加上頁(yè)碼
-p
顯示出現(xiàn)塊的C函數(shù)
-q 只報(bào)告文件是否不同;不輸出差別
-r 比較目錄時(shí),進(jìn)行遞歸比較
-s
報(bào)告兩個(gè)文件相同(默認(rèn)的行為是不報(bào)告相同的文件)
-t 輸出時(shí)tab擴(kuò)展為空白
-u
產(chǎn)生"統(tǒng)一"(unified)格式的輸出
-U[num] 產(chǎn)生"統(tǒng)一"(unified)格式的輸出,顯示塊前后num行的內(nèi)容,如果不指定num的值,則顯示塊前后3行的內(nèi)容
-v
打印diff的版本號(hào)
-w 逐行比較時(shí)忽略空白
-W cols 如果產(chǎn)生并排格式的輸出(參見(jiàn)-y)
,讓輸出的每一列有cols個(gè)字符寬
-x pattern 當(dāng)比較目錄時(shí),忽略匹配模式pattern的任何文件和子目錄
-y
產(chǎn)生并排格式的輸出