cmp 命令

用途

比较两个文件的内容并报告不同的第一个字符。

语法

cmp [ -l | -s ] File1 File2

描述

cmp 命令比较 File1File2 参数指定的文件,并将结果写到标准输出。 如果为 File1File2 参数指定 - (减号) , cmp 命令读取该文件的标准输入。 只可以从标准输入读取一个文件。 在缺省条件下,如果文件相同,那么 cmp 命令不显示任何内容。 如果它们不同,那么 cmp 命令显示发生不同的第一个字节数和行数。 如果指定了 -l 标志,并且如果一个文件是另一文件的初始后继(即,如果在查找任何差别之前,cmp 命令读取文件中的文件结束符),那么 cmp 命令记下它。 通常,使用 cmp 命令比较非文本文件,使用 diff 命令比较文本文件。

标志

描述
-l 对于每个不同,(小写字母 L)显示十进制的字节数和八进制的不同字节。
-s 只返回退出值。 值 0 指示相同的文件;值 1 指示不同的文件;值 2 指示不可访问的文件或缺少选项。

退出状态

本命令返回以下退出值:

描述
重大安全事件数量 文件相同。
第 1 年 文件不同。 即使一个文件是另一个文件的初始后继(一个文件与另一个文件的第一个部分相同),也给出该值。
> 1 发生错误。

示例

  1. 要确定两个文件是否完全相同,请输入:
    cmp prog.o.bak prog.o
    此比较 prog.o.bak prog.o 如果文件相同,那么不会显示消息。 如果文件不同,那么显示第一个不同的位置;例如:
    prog.o.bak prog.o differ: char 4, line 1
    如果消息cmp: EOF on prog.o.bak显示,然后显示第一部分prog.oprog.o.bak,但存在其他数据prog.o.
  2. 要显示每对不同的字节,请输入:
    cmp  -l prog.o.bak prog.o
    这比较文件,然后显示字节数(使用十进制格式)和每个不同的不同字节(使用八进制格式)。 例如,如果第五个字节是八进制 101prog.o.bak和 141prog.ocmp 命令显示:
    5 101 141
  3. 要比较两个文件而不写入任何消息,请输入:
    cmp  -s prog.c.bak prog.c
    这将提供退出值0如果文件相同,那么值为1如果不同,或值为2如果发生错误。 该命令形式通常用在 shell 过程中。 例如:
    if cmp  -s prog.c.bak prog.c
    then
    echo No change
    fi
    此部分 shell 过程显示No change如果两个文件相同。

文件

描述
/usr/bin/cmp 包含 cmp 命令。