Linux CMP

CMP(Linux)【Linux CMP】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 1413. 要比较两个档案,而不写任何讯息,请输入:cmp -s prog.c.bak prog.c这样,如果档案相同,则给出值 0,如果不同,则给出值 1,或者如果发生错误,则给出值 2 。该命令形式通常用在 shell 步骤中 。例如:if cmp -s prog.c.bak prog.cthenecho No changefi如果两个档案相同,则该部分的 shell 步骤显示 No change 。档案/usr/bin/cmp 包含 cmp 命令 。