概述
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 通過退出碼報告比較結果,因此非常適合在腳本中使用。
代碼 | 意義 |
---|---|
0 | 兩個檔案相同 |
1 | 兩個檔案不同 |
2 | 無法訪問的檔案或選項錯誤 |
安裝
cmp 作為 `diffutils` 套件的一部分,預設包含在大多數 Linux 發行版中。無需額外安裝。
提示與注意事項
整理了使用 cmp 命令時需要注意的事項。
提示
- cmp 最適合用於比較二進位檔案。如果要查看文本檔案的內容差異,建議使用 `diff`。
- 使用 `cmp -s` 選項時沒有輸出,這使得它在腳本中與 `if` 語句或 `&&`/`||` 運算符結合使用時非常方便。
- 位元組位置從 1 開始,`cmp -l` 輸出的位元組值為八進位表示。