CMP(Linux)

cmp 命令比較 File1 和 File2 參數指定的檔案,並將結果寫到標準輸出。

用途,語法,描述,標誌,退出狀態,示例,
cmp 命令

用途

比較兩個檔案。

語法

cmp [ -l | -s ] File1 File2

描述

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

標誌

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

退出狀態

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

示例

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 命令。

相關詞條

熱門詞條

聯絡我們