cmpは、2つのファイルを比較する。
2つのファイルの内容が同じ場合は何も出力しない。違う場合、最初の違いがある箇所のバイト数と行番号を出力する。バイト数と行番号は1から始まる。
$ echo hello > foo
$ echo hello > bar
$ cmp foo bar
$ echo heXlo > bar
$ cmp foo bar
foo bar differ: byte 3, line 1
引数-l
は、それぞれの違いについて、バイト数を10進数、バイトの値を8進数で出力する
$ ehco hello > foo
$ echo heXXX > bar
$ cmp -l foo bar
3 154 130
4 154 130
5 157 130
-s
はファイルに違いがあっても何も出力しない。結果はexit値のみで判断する。ファイルが同一ならば0が、違うならば1が、エラーが起きたならば1以上の値が出力される。
$ cmp foo foo
$ echo $?
0
$ cmp foo bar
$ ecno $?
1
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/cmp.html