cmpコマンドは1byte単位でファイルを比較できるコマンドです.
例
例として下記の様なファイルを用意します.
$ cat greeting1.txt Hello, World. $ cat greeting2.txt hello,world
比較してみます.
$ cmp greeting1.txt greeting2.txt greeting1.txt greeting2.txt 異なります: バイト 1、行 1
cmpコマンドは戻り値を返します.そしてそちらの方が使えます.
戻り値 | 状態 |
---|---|
0 | 差分なし |
1 | 差分あり |
2 | エラー |
例
$ cmp greeting1.txt greeting2.txt greeting1.txt greeting2.txt 異なります: バイト 1、行 1 $ echo $? # $?は終了ステータスを返すシェルの特殊変数 1 $ cmp greeting1.txt greeting1.txt $ echo $? 0
オプション
オプション | 内容 |
---|---|
-s | 結果出力を抑制します |
-l | 違いのあるバイトのオフセット(10進数)とその値(8進数)を表示します |
例
$ cmp -s greeting1.txt greeting2.txt $ $ cmp -l greeting1.txt greeting2.txt 1 110 150 7 40 167 8 127 157 9 157 162 10 162 154 11 154 144 12 144 12 cmp: greeting2.txt でファイル終端 (EOF) に達しました
シェルスクリプト組むときには使えるタイプのコマンドっぽいですね.