In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
,
cmp
is a
command-line
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive command (computing), commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invokin ...
utility on
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s that compares two
files
File or filing may refer to:
Mechanical tools and processes
* File (tool), a tool used to ''remove'' fine amounts of material from a workpiece
**Filing (metalworking), a material removal process in manufacturing
** Nail file, a tool used to gent ...
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
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit ...
and line number at which the first difference occurred is reported. The command is also available in the
OS-9 shell.
History
is part of the
X/Open X/Open group (also known as the Open Group for Unix Systems and incorporated in 1987 as X/Open Company, Ltd.) was a consortium founded by several European UNIX systems manufacturers in 1984 to identify and promote open standards in the field of in ...
Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and the
Single Unix Specification. It first appeared in
Version 1 Unix.
The version of
cmp
bundled in
GNU coreutils
The GNU Core Utilities or coreutils is a package of GNU software containing implementations for many of the basic tools, such as cat, ls, and rm, which are used on Unix-like operating systems.
In September 2002, the ''GNU coreutils'' were c ...
was written by Torbjorn Granlund and David MacKenzie.
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. The command has also been ported to the
IBM i operating system.
Switches
cmp
may be qualified by the use of
command-line switches. The switches supported by notable implementations of
cmp
are:
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 for decimal multiples and with the IEC 60027-2 prefixes for binary multiples.
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
*
Comparison of file comparison tools
This article compares computer software tools which are used for accomplishing comparisons of files of various types. The file types addressed by individual file comparison apps varies, but may include text, symbols, images, audio, or video. Thi ...
*
List of Unix commands
This is a list of Unix commands as specified by IEEE Std 1003.1-2008, which is part of the Single UNIX Specification (SUS). These commands can be found on Unix operating systems and most Unix-like operating systems.
List
See also
* List of G ...
References
External links
*
''Comparing and Merging Files'': Invoking cmpThe section of the manual of GNU cmp in the
diffutils free manual
Free may refer to:
Concept
* Freedom, having the ability to do something, without having to obey anyone/anything
* Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism
* Emancipate, to procure ...
.
{{Plan 9 commands
Free file comparison tools
Standard Unix programs
Unix SUS2008 utilities
Plan 9 commands
Inferno (operating system) commands
IBM i Qshell commands