首頁 > 文字處理與搜尋 > cmp

cmp: 按位元組比較兩個檔案

cmp 命令按位元組比較兩個檔案,並報告檔案首次出現差異的位置和行號。它對於快速檢查簡單的二進位檔案或文本檔案是否一致非常有用。

概述

cmp 是一個比 diff 命令更簡單的比較工具。diff 詳細地顯示檔案逐行的差異,而 cmp 僅輸出「兩個檔案不同」的事實,以及差異首次出現的位置(位元組偏移量)和行號。因此,當您只需要檢查檔案(如配置檔案或二進位檔案)是否一致而無需查看整個內容時,cmp 非常有效。

主要特點

cmp 命令的主要特點如下:

  • 按位元組比較檔案。
  • 只輸出首次出現差異的位置和行號。
  • 輸出簡單,適合在腳本中用於檢查檔案是否一致。
  • 對於二進位檔案比較特別有用。

與 diff 的差異

cmp 和 diff 都是檔案比較工具,但在目的和輸出方式上有所不同。

  • cmp: 按位元組比較,只報告第一個差異,適用於二進位檔案比較。
  • diff: 逐行比較,詳細報告所有差異,適用於文本檔案比較。

主要選項

我們根據用途將 cmp 命令的常用選項進行了分組。

1) 比較選項

2) 幫助

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`cmp` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

通過 cmp 命令的各種使用範例來學習其功能。

比較兩個文本檔案

echo 'Hello World' > file1.txt
echo 'Hello World' > file2.txt
cmp file1.txt file2.txt

比較兩個相同的文本檔案時,不會輸出任何內容。

比較兩個不同的文本檔案

echo 'Hello World' > file1.txt
echo 'Hello, World' > file2.txt
cmp file1.txt file2.txt

如果檔案內容不同,則輸出第一個差異的位元組位置和行號。

比較二進位檔案

cmp /bin/ls /bin/cmp

簡單地檢查二進位檔案是否一致。如果沒有輸出,則表示檔案相同。

在腳本中使用

cmp -s file1.txt file2.txt && echo '檔案이 동일합니다.' || echo '檔案이 다릅니다.'

使用 cmp 的退出碼來根據檔案是否一致進行分支處理。

退出碼

cmp 通過退出碼報告比較結果,因此非常適合在腳本中使用。

cmp 退出狀態碼
代碼 意義
0 兩個檔案相同
1 兩個檔案不同
2 無法訪問的檔案或選項錯誤

安裝

cmp 作為 `diffutils` 套件的一部分,預設包含在大多數 Linux 發行版中。無需額外安裝。

提示與注意事項

整理了使用 cmp 命令時需要注意的事項。

提示

  • cmp 最適合用於比較二進位檔案。如果要查看文本檔案的內容差異,建議使用 `diff`。
  • 使用 `cmp -s` 選項時沒有輸出,這使得它在腳本中與 `if` 語句或 `&&`/`||` 運算符結合使用時非常方便。
  • 位元組位置從 1 開始,`cmp -l` 輸出的位元組值為八進位表示。

相關命令

功能上相似或經常一起使用的命令。


相同類別命令