新闻资讯
看你所看,想你所想

CMP(Linux)

CMP(Linux)

cmp 命令比较 File1 和 File2 参数指定的档案,并将结果写到标準输出。

cmp 命令

用途

比较两个档案。

语法

cmp [ -l | -s ] File1 File2

描述

cmp 命令比较 File1 和 File2 参数指定的档案,并将结果写到标準输出。如果为 File1 或 File2 参数指定 -(减号),则 cmp 命令读取该档案的标準输入。只可以从标準输入读取一个档案。在预设条件下,如果档案相同,则 cmp 命令不显示任何内容。如果它们不同,则 cmp 命令显示发生不同的第一个位元组数和行数。如果指定了 -l 标誌,并且如果一个档案是另一档案的初始后继(即,如果在查找任何差别之前,cmp 命令读取档案中的档案结束符),则 cmp 命令记下它。通常,使用 cmp 命令比较非文本档案,使用 diff 命令比较文本档案。

标誌

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

退出状态

该命令返回以下出口值:
0 档案相同。
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.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其它数据。
2. 要显示不同位元组的每个对,请输入:
cmp -l prog.o.bak prog.o
这比较档案,然后显示位元组数(使用十进制格式)和每个不同的不同位元组(使用八进制格式)。例如,如果第五个位元组在 prog.o.bak 中是八进制 101,在 prog.o 中是141,则 cmp 命令显示:
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 命令。

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com