## 11.7. cmp and diff

cmp is another program for comparing files. It's a lot simpler than diff (Section 11.1); it tells you whether the files are equivalent and the byte offset at which the first difference occurs. You don't get a detailed analysis of where the two files differ. For this reason, cmp is often faster, particularly when you're comparing ASCII files: it doesn't have to generate a long report summarizing the differences. If all you want to know is whether two files are different, it's the right tool for the job.

It's worth noting, though, that cmp isn't always faster. Some versions of diff make some simple checks first, such as comparing file length. If two binary files have different lengths, they are obviously different; some diff implementations will tell you so without doing any further processing.

Both diff and cmp return an exit status (Section 35.12) that shows what they found:

Exit status | Meaning
--- | ---
0 | The files were the same.
1 | The files differed.
2 | An error occurred.

Within a shell script, the exit status from diff and cmp is often more important than their actual output.

-- ML

Copyright © 2003 O'Reilly & Associates. All rights reserved.