Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CMP(1)			     General Commands Manual			  CMP(1)

NAME
     cmp -- compare two files

SYNOPSIS
     cmp [-l | -s | -x] [-bhz] [--ignore-initial=num1[:num2]] [--bytes=num]
	 file1 file2 [skip1 [skip2]]

DESCRIPTION
     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 oc-
     curred is reported.

     Bytes and lines are numbered beginning with one.

     The following options are available:

     -b, --print-bytes
	     Print each byte when a difference is found.

     -h      Do not follow symbolic links.

     -i num1[:num2], --ignore-initial=num1[:num2]
	     Skip num1 bytes from file1, and optionally  skip  num2  bytes  from
	     file2.   If  num2	is  not specified, then num1 is applied for both
	     file1 and file2.

     -l, --verbose
	     Print the byte number (decimal) and the differing byte values  (oc-
	     tal) for each difference.

     -n num, --bytes=num
	     Only compare up to num bytes.

     -s, --silent, --quiet
	     Print nothing for differing files; return exit status only.

     -x      Like  -l  but prints in hexadecimal and using zero as index for the
	     first byte in the files.

     -z      For regular files compare file sizes first, and fail the comparison
	     if they are not equal.

     The optional arguments skip1 and skip2 are the byte offsets from the begin-
     ning 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.

EXIT STATUS
     The cmp utility exits with one of the following values:

     0	   The files are identical.

     1	   The files are different; this includes the case  where  one	file  is
	   identical to the first part of the other.  In the latter case, if the
	   -s  option  has not been specified, cmp writes to standard error that
	   EOF was reached in the shorter  file  (before  any  differences  were
	   found).

     >1    An error occurred.

EXAMPLES
     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

SEE ALSO
     diff(1), diff3(1)

STANDARDS
     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.

HISTORY
     A cmp command appeared in Version 1 AT&T UNIX.

BUGS
     The phrase "SI size suffixes" above refers to the traditional power of  two
     convention, as described in expand_number(3).

FreeBSD ports 15.1	       September 23, 2021			  CMP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=cmp&sektion=1&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help