cmp Command in Linux with examples

25 May, 2022
cmp command in Linux/UNIX is used to compare the two files byte by byte and helps you to find out whether the two files are identical or not.
When cmp is used for comparison between two files, it reports the location of the first mismatch to the screen if difference is found and if no difference is found i.e the files compared are identical.
cmp displays no message and simply returns the prompt if the files compared are identical.
Syntax:
cmp [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]

SKIP1 ,SKIP2 & OPTION are optional 
and FILE1 & FILE2 refer to the filenames .
The syntax of cmp command is quite simple to understand. If we are comparing two files then obviously we will need their names as arguments (i.e as FILE1 & FILE2 in syntax). In addition to this, the optional SKIP1 and SKIP2 specify the number of bytes to skip at the beginning of each file which is zero by default and OPTION refers to the options compatible with this command about which we will discuss later on. cmp Example : As explained that the cmp command reports the byte and line number if a difference is found. Now let’s find out the same with the help of an example. Suppose there are two files which you want to compare one is file1.txt and other is file2.txt :
$cmp file1.txt file2.txt
If the files are not identical : the output of the above command will be :
If the files are not identical : the output of the above command will be :
$cmp file1.txt file2.txt
file1.txt file2.txt differ: byte 9, line 2

 /*indicating that the first mismatch found in
 two files at byte 20 in second line*/
If the files are identical : you will see something like this on your screen:
If the files are identical : you will see something like this on your screen:
$cmp file1.txt file2.txt
$ _
/*indicating that the files are identical*/
Options for cmp command
1. -b(print-bytes) : If you want cmp displays the differing bytes in the output when used with -b option.
//...cmp command used with -b option...//

$cmp -b file1.txt file2.txt
file1.txt file2.txt differ: 12 byte, line 2 is 154 l 151 i

/* indicating that the difference is in 12
 byte ,which is 'l' in file1.txt and 'i' in file2.txt.*/
The values 154 and 151 in the above output are the values for these bytes, respectively. 2. -i [bytes-to-be-skipped] : Now, this option when used with cmp command helps to skip a particular number of initial bytes from both the files and then after skipping it compares the files. This can be done by specifying the number of bytes as argument to the -i command line option.
Chapters
descriptions off, selected
captions settings, opens captions settings dialog
captions off, selected
English
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
//...cmp command used with -i option...//

$cmp -i 10 file1.txt file2.txt
$_

/*indicating that both files are identical 
after 10 bytes skipped from both the files*/
Note that in cases like these (where you use -i to skip bytes), the byte at which the comparison begins is treated as byte number zero. 3. -i [bytes to be skipped from first file] : [bytes to be skipped from second file] :This option is very much similar to the above -i [bytes to be skipped] option but with the difference that now it allows us to input the number of bytes we want to skip from both the files separately.
//...cmp command used with -i option...//

$cmp -i 10:12 file1.txt file2.txt
$_

/*indicating that both files are identical 
after 10 bytes skipped from first file and 
12 bytes skipped from second file*/
4. -l option : This option makes the cmp command print byte position and byte value for all differing bytes.
//...cmp command used with -l option...//

$cmp -l file1.txt file2.txt 
20   12   56
21  124   12
22  150  124
23  151  150
24  163  151
25   40  163
26  146   40
27  150  151
28   12   24
29  124  145
30  157  163

/*indicating that files are different 
displaying the position of differing 
bytes along with the differing bytes
 in both file*/
The first column in the output represents the position (byte number) of differing bytes. The second column represents the byte value of the differing byte in the first file, while the third column represents the byte value of the differing byte in the second file. 5. -s option : This allows you to suppress the output normally produced by cmp command i.e it compares two files without writing any messages. This gives an exit value of 0 if the files are identical, a value of 1 if different, or a value of 2 if an error message occurs.
//...cmp command used with -s option...//

$cmp -s file1.txt file.txt 
1

/*indicating files are different without
displaying the differing byte and line*/
6. -n [number of bytes to be compared] option :This option allows you to limit the number of bytes you want to compare ,like if there is only need to compare at most 25 or 50 bytes.
//...cmp command used with -n option...//

$cmp -n 50 file1.txt file2.txt
$_

/*indicating files are identical for starting
50 bytes*/
8. – -v option : This gives the output information and exits. 9. – -help option : This displays a help message and exits.
Linux Tutorials | cmp, diff and comm commands | GeeksforGeeks - YouTubeGeeksforGeeks530K subscribersLinux Tutorials | cmp, diff and comm commands | GeeksforGeeksWatch laterShareCopy linkInfoShoppingTap to unmuteIf playback doesn't begin shortly, try restarting your device.More videosMore videosYou're signed outVideos you watch may be added to the TV's watch history and influence TV recommendations. To avoid this, cancel and sign in to YouTube on your computer.CancelConfirmSwitch cameraShareInclude playlistAn error occurred while retrieving sharing information. Please try again later.Watch on0:000:000:00 / 5:36•Live•<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><a href="https://www.youtube.com/watch?v=0k6obEKGTyk" target="_blank">Try watching this video on www.youtube.com</a>, or enable JavaScript if it is disabled in your browser.</div></div>
?list=PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L
ankita_saini
linux-command
Linux-file-commands
Linux-Unix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
tar command in Linux with examples
Conditional Statements | Shell Script
Tail command in Linux with examples
UDP Server-Client implementation in C
Docker - COPY Instruction
scp command in Linux with Examples
echo command in Linux with Examples
Cat command in Linux with examples
touch command in Linux with Examples
chown command in Linux with Examples