CMP(1) | General Commands Manual | CMP(1) |
cmp
— compare two
files
cmp |
[-l | -s |
-x ] [-bhz ]
[--ignore-initial = num1[:num2]]
[--bytes = num]
file1 file2 [skip1
[skip2]] |
The cmp
utility compares two files of any
type and writes the results to the standard output. By default,
cmp
is silent if the files are the same; if they
differ, the byte and line number at which the first difference occurred is
reported.
Bytes and lines are numbered beginning with one.
The following options are available:
-b
,
--print-bytes
-h
-i
num1[:num2],
--ignore-initial=
num1[:num2]-l
,
--verbose
-n
num, --bytes=
num-s
,
--silent
, --quiet
-x
-l
but prints in hexadecimal and using zero
as index for the first byte in the files.-z
The optional arguments skip1 and skip2 are the byte offsets from the beginning of file1 and file2, respectively, where the comparison will begin. The offset is decimal by default, but may be expressed as a hexadecimal or octal value by preceding it with a leading ``0x'' or ``0''.
skip1 and skip2 may also be specified with SI size suffixes.
The cmp
utility exits with one of the
following values:
-s
option has not been specified,
cmp
writes to standard error that EOF was reached
in the shorter file (before any differences were found).Assuming a file named example.txt with the following contents:
a b c
Compare stdin with example.txt:
$ echo -e "a\nb\nc" | cmp - example.txt
Same as above but introducing a change in the third byte of stdin. Show the byte number (decimal) and differing byte (octal):
$ echo -e "a\nR\nc" | cmp -l - example.txt 3 122 142
Compare file sizes of example.txt and
/boot/loader.conf and return 1 if they are not
equal. Note that -z
can only be used with regular
files:
$ cmp -z example.txt /boot/loader.conf example.txt /boot/loader.conf differ: size
Compare stdin with example.txt omitting the first 4 bytes from stdin and the first 2 bytes from example.txt:
$ echo -e "a\nR\nb\nc" | cmp - example.txt 4 2
The cmp
utility is expected to be
IEEE Std 1003.2 (“POSIX.2”)
compatible. The -b
, -h
,
-i
, -n
,
-x
, and -z
options are
extensions to the standard. skip1 and
skip2 arguments are extensions to the standard.
A cmp
command appeared in
Version 1 AT&T UNIX.
The phrase “SI size suffixes” above refers to the traditional power of two convention, as described in expand_number(3).
September 23, 2021 | macOS 15.0 |