Linux基礎命令---diff
diff
逐行比較兩個文字檔案,把檔案的差異顯示到標準輸出。如果要指定要比較目錄,那麼diff命令會比較目錄中相同檔名的檔案,不會比較子目錄。此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、語法
diff [選項] files
2、選項列表
選項 |
說明 |
-v | --version |
顯示命令版本資訊 |
--help |
顯示幫助文件 |
-m | --mode=MODE |
設定目錄的許可權 |
-i | --ignore-case |
比較的時候,忽略大小寫 |
--ignore-file-name-case |
在比較檔名的時候,忽略大小寫 |
--no-ignore-file-name-case |
比較檔名的時候,不能忽略大小寫 |
-E | --ignore-tab-expansion |
不比較tab |
-b | --ingore-space-change |
不比較空格數 |
-w | --ignore-all-space |
忽略所有的空格 |
-B | --ignore-blank-lines |
不比較空白行 |
-I res | --ignore-mathcing-lines=res |
不比較含有指定字串res的行 |
--strip-trailing-cr |
出去輸入行尾隨的東西 |
-a | --text |
將所有的檔案都當做文字檔案 |
-c -C NUM --context[=NUM] |
顯示不同之處的前後部分內容,預設是3行 |
-u -U NUM --unified[=NUM] |
顯示相同之處的前後部分內容,預設是3行 |
--label LABEL |
使用檔案的標籤,而不是名字 |
-p | --show-c-function |
比較c語言檔案的時候,顯示不同之處所在的函式 |
-F RE | --show-function-line=RE |
顯示匹配RE的最近的行 |
-q | --brief |
只顯示是否有差異,不顯示詳細內容 |
-e | --ed |
輸出一個ed指令碼 |
--normal |
輸出一個正常的diff |
-n | --rcs |
結果以rcs的方式顯示 |
-y | --side-by-side |
將兩個檔案已並列方式顯示比較結果 |
-W num | --width=NUM |
使用“-y”選項的時候,指定列寬 |
--left-column |
只輸出公共行的左列 |
--suppress-common-lines |
不要輸出公共行 |
-D NAME | --ifdef=NAME |
輸出合併檔案以顯示‘#ifdef NAME’的差異 |
--GTYPE-group-format=GFMT |
同上,但用GFMT格式化GTYPE輸入組 |
--line-format=LFMT |
同上,但用LFMT格式化GTYPE輸入組 |
--LTYPE-line-format=LFMT |
同上,但用LFMT格式化LTYPE輸入行 |
-l | --paginate |
將輸出傳遞給pr”以分頁 |
-t | --expand-tabs |
將製表符展開為輸出中的空格 |
-T | --initial-tab |
通過預置選項卡使製表符對齊 |
-N | --new-file |
將缺席檔案視為空檔案 |
--unidirectional-new-file |
將缺席的第一批檔案視為空檔案 |
-s | --report-identical-files |
當兩個檔案相同時報告 |
-X FILE | --exclude-from=FILE |
排除與檔案中任何模式匹配的檔案 |
-S FILE | --starting-file=FILE |
從檔案開始比較目錄時 |
-r | --recursive |
用遞迴的方式比較子目錄下的所有檔案 |
-x path |
不比較指定的檔案 |
--from-file=FILE1 |
將FILE 1與所有運算元進行比較。FILE 1可以是一個目錄 |
--to-file=FILE2 |
將所有運算元與檔案2進行比較。檔案2可以是一個目錄 |
--horizon-lines=NUM |
保持通用字首和字尾的NUM行 |
-d --minimal |
努力找出一組較小的變更 |
--speed-large-files |
假設檔案很大,並且有許多零散的小更改。 |
3、例項
1)比較兩個檔案,不使用引數 (兩個檔案只有第一行不同)
|
2)使用選項-y,以分列的方式輸出兩個檔案
|
3)使用選項-W,指定列寬
|
4)比較目錄
|
5)使用選項-q,檢視是否不同
|