Cmp_(Unix)

cmp (Unix)

cmp (Unix)

Computer file comparison utility


In computing, cmp is a command-line utility on Unix and Unix-like operating systems that 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. The command is also available in the OS-9 shell.[1]

Quick Facts Original author(s), Developer(s) ...

History

cmp is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and the Single Unix Specification.[2] It first appeared in Version 1 Unix.[3] The version of cmp bundled in GNU coreutils was written by Torbjorn Granlund and David MacKenzie.[4] The command is available as a separate package for Microsoft Windows as part of the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.[5] The cmp command has also been ported to the IBM i operating system.[6]

Switches

cmp may be qualified by the use of command-line switches. The switches supported by notable implementations of cmp are:

More information Name, Description ...

Operands that are byte counts are normally decimal, but may be preceded by '0' for octal and '0x' for hexadecimal.

A byte count can be followed by a suffix to specify a multiple of that count; in this case an omitted integer is understood to be 1. A bare size letter, or one followed by 'iB', specifies a multiple using powers of 1024. A size letter followed by 'B' specifies powers of 1000 instead. For example, '-n 4M' and '-n 4MiB' are equivalent to '-n 4194304', whereas '-n 4MB' is equivalent to '-n 4000000'. This notation is upward compatible with the SI prefixes[7] for decimal multiples and with the IEC 60027-2 prefixes for binary multiples.[8]

Examples

Comparing

:020000040007F3
:10E00000840D80E501000000010000000100000017
:10E01000000000000000000070DE010062A726542E

with

:020000040007F3
:10E44400840D80E501000000010000000100000017
:10E01000000000000000000070DE010062A726542E

> cmp  0 00

0 00 differ: char 21, line 2

> cmp -l 0 00 # note: byte location is in decimal, contents is in octal
 21  64  60
 22  64  60
 23  64  60

Return values

  • 0 – files are identical
  • 1 – files differ
  • 2 – inaccessible or missing argument

See also


References

  1. Paul S. Dayan (1992). The OS-9 Guru - 1 : The Facts. Galactic Industrial Limited. ISBN 0-9519228-0-7.
  2. printf  Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  3. cmp(1)  FreeBSD General Commands Manual
  4. "Definitions of the SI units: The binary prefixes". physics.nist.gov. Retrieved 21 April 2018.

Share this article:

This article uses material from the Wikipedia article Cmp_(Unix), and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.