複製鏈接
請複製以下鏈接發送給好友

CMP

(Linux)

鎖定
cmp 命令比較 File1 和 File2 參數指定的文件,並將結果寫到標準輸出。
外文名
CMP
用    途
比較兩個文件

CMP語法

cmp [ -l | -s ] File1 File2

CMP描述

如果為 File1 或 File2 參數指定 -(減號),則 cmp 命令讀取該文件的標準輸入。只可以從標準輸入讀取一個文件。在缺省條件下,如果文件相同,則 cmp 命令不顯示任何內容。如果它們不同,則 cmp 命令顯示發生不同的第一個字節數和行數。如果指定了 -l 標誌,並且如果一個文件是另一文件的初始後繼(即,如果在查找任何差別之前,cmp 命令讀取文件中的文件結束符),則 cmp 命令記下它。通常,使用 cmp 命令比較非文本文件,使用 diff 命令比較文本文件。

CMP標誌

-l 對於每個不同,(小寫字母 L)顯示十進制的字節數和八進制的不同字節。
-s 只返回退出值。值 0 指示相同的文件;值 1 指示不同的文件;值 2 指示不可訪問的文件或缺少選項。

CMP退出狀態

該命令返回以下出口值:
0 文件相同。
1 文件不同。即使一個文件是另一個文件的初始後繼(一個文件與另一個文件的第一個部分相同),也給出該值。
>1 發生錯誤。

CMP示例

1. 要確定兩個文件是否相同,請輸入:
cmp prog.o.bak prog.o
這比較 prog.o.bak 和 prog.o。如果文件相同,則不顯示消息。如果文件不同,則顯示第一個不同的位置;例如:
prog.o.bak prog.o differ: char 4, line 1
如果顯示消息 cmp: EOF on prog.o.bak,則 prog.o 的第一部分與 prog.o.bak 相同,但在 prog.o 中還有其它數據。
2. 要顯示不同字節的每個對,請輸入:
cmp -l prog.o.bak prog.o
這比較文件,然後顯示字節數(使用十進制格式)和每個不同的不同字節(使用八進制格式)。例如,如果第五個字節在 prog.o.bak 中是八進制 101,在 prog.o 中是141,則 cmp 命令顯示:
5 101 141
3. 要比較兩個文件,而不寫任何消息,請輸入:
cmp -s prog.c.bak prog.c
這樣,如果文件相同,則給出值 0,如果不同,則給出值 1,或者如果發生錯誤,則給出值 2。該命令形式通常用在 shell 步驟中。例如:
if cmp -s prog.c.bak prog.c
then
echo No change
fi
如果兩個文件相同,則該部分的 shell 步驟顯示 No change。
文件
/usr/bin/cmp 包含 cmp 命令。