cmp 命令
用途
比较两个文件的内容并报告不同的第一个字符。
语法
描述
cmp 命令比较 File1 和 File2 参数指定的文件,并将结果写到标准输出。 如果为 File1 或 File2 参数指定 - (减号) , cmp 命令读取该文件的标准输入。 只可以从标准输入读取一个文件。 在缺省条件下,如果文件相同,那么 cmp 命令不显示任何内容。 如果它们不同,那么 cmp 命令显示发生不同的第一个字节数和行数。 如果指定了 -l 标志,并且如果一个文件是另一文件的初始后继(即,如果在查找任何差别之前,cmp 命令读取文件中的文件结束符),那么 cmp 命令记下它。 通常,使用 cmp 命令比较非文本文件,使用 diff 命令比较文本文件。
标志
| 项 | 描述 |
|---|---|
| -l | 对于每个不同,(小写字母 L)显示十进制的字节数和八进制的不同字节。 |
| -s | 只返回退出值。 值 0 指示相同的文件;值 1 指示不同的文件;值 2 指示不可访问的文件或缺少选项。 |
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 文件相同。 |
| 第 1 年 | 文件不同。 即使一个文件是另一个文件的初始后继(一个文件与另一个文件的第一个部分相同),也给出该值。 |
| > 1 | 发生错误。 |
示例
- 要确定两个文件是否完全相同,请输入:
此比较 prog.o.bak和 prog.o。 如果文件相同,那么不会显示消息。 如果文件不同,那么显示第一个不同的位置;例如:cmp prog.o.bak prog.o
如果消息cmp: EOF on prog.o.bak显示,然后显示第一部分prog.o与prog.o.bak,但存在其他数据prog.o.prog.o.bak prog.o differ: char 4, line 1 - 要显示每对不同的字节,请输入:cmp -l prog.o.bak prog.o这比较文件,然后显示字节数(使用十进制格式)和每个不同的不同字节(使用八进制格式)。 例如,如果第五个字节是八进制 101prog.o.bak和 141prog.o, cmp 命令显示:
5 101 141 - 要比较两个文件而不写入任何消息,请输入:cmp -s prog.c.bak prog.c这将提供退出值0如果文件相同,那么值为1如果不同,或值为2如果发生错误。 该命令形式通常用在 shell 过程中。 例如:此部分 shell 过程显示No change如果两个文件相同。
文件
| 项 | 描述 |
|---|---|
| /usr/bin/cmp | 包含 cmp 命令。 |