Linux中比較文件或者文件夾差異,經常用到diff命令,先解釋如下。
用法:diff [選項]... FILES
功能:逐行比較文件。
常用選項說明:
-i --ignore-case 忽略文件內容大小寫的區別。用於文件夾或者文件比較時經常用到的參數:-i/-N/-q/-r/-w/-B/-b/-u/-y/--suppress-common-lines等,同時結合“>”重定向和grep等命令過濾、保存比較結果。
--ignore-file-name-case 忽略文件名大小寫的區別。
--no-ignore-file-name-case 不忽略文件名大小寫的區別。
-E --ignore-tab-expansion 忽略由製表符寬度造成的差異。
-b --ignore-space-change 忽略由空格數不同造成的差異。
-w --ignore-all-space 忽略所有空格。
-B --ignore-blank-lines 忽略任何因空行而造成的差異。
-I RE --ignore-matching-lines=RE 如果某行匹配正則表達式,則忽略由該行造成的差異。
--strip-trailing-cr 去除輸入內容每行末端的 carriage return 字符。
-a --text 所有文件都以文本方式處理。
-c -C 行數 --context[=行數] 顯示指定<行數>(默認 3 行)copied 格式的上下文
-u -U 行數 --unified[=行數] 顯示指定<行數>(默認 3 行)unified 格式的上下文
--label 標識 使用<標識>代替文件名稱。
-p --show-c-function 顯示和每個差異有關的 C 函數名稱。
-F RE --show-function-line=RE 顯示最接近而符合<正則表示式>的一行。
-q --brief 只顯示文件是否不同。
-e --ed 以 ed script 方式輸出。
--normal 以正常的 diff 方式輸出。
-n --rcs 以 RCS diff 格式輸出。
-y --side-by-side 以兩列並排的方式顯示。
-W NUM --width=NUM 每行顯示最多 NUM (默認 130) 個字符。
--left-column 當有兩行相同時只顯示左邊的一行。
--suppress-common-lines 當有兩行相同時不會顯示。
-D NAME --ifdef=NAME 輸出的內容以‘#ifdef NAME’方式標明差異。
-l --paginate 將輸出送至‘pr’指令來分頁。
-t --expand-tabs 將輸出中的 tab 轉換成空格。
-T --initial-tab 每行先加上 tab 字符,使 tab 字符可以對齊。
--tabsize=NUM 定位字符 (tab) 的寬度,默認爲 8 個空格寬。
--suppress-blank-empty Suppress space or tab before empty output lines.
-r --recursive 連同所有子目錄一起比較。
-N --new-file 不存在的文件以空文件方式處理。
--unidirectional-new-file 若第一文件案不存在,以空文件處理。
-s --report-identical-files 當兩個一樣時仍然顯示結果。
-x PAT --exclude=PAT 排除匹配 PAT 的文件。
-X FILE --exclude-from=FILE 排除所有匹配在 FILE 中列出的模式的文件。
-S FILE --starting-file=FILE 當比較目錄時,由 FILE 開始比較。
--from-file=FILE1 將 FILE1 和操作數中的所有文件/目錄作比較。FILE1 可以是目錄。
--to-file=FILE2 將操作數中的所有文件/目錄和 FILE2 作比較。FILE2 可以是目錄。
--horizon-lines=NUM (此選項不做處理)
-d --minimal 儘可能找出最小的差異。
--speed-large-files 假設文件十分大而且其中含有許多微小的差異。
-v --version 輸出版本信息。
--help 輸入本幫助。
FILES 的格式可以是‘FILE1 FILE2’、‘DIR1 DIR2’、‘DIR FILE...’或
‘FILE... DIR’。
如果使用 --from-file 或 --to-file 選項,FILES 的格式則不受限制。
如果 FILE 是‘-’,則由標準輸入讀取內容。
如果輸入相同,則退出狀態爲 0;1 表示輸入不同;2 表示有錯誤產生。