LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > Linux命令 >

Linux cpm命令参数及使用方法详解

时间:2013-06-19 18:01来源:www.linuxeye.com 编辑:LinuxEye 点击:
cpm(compare)比较两个文件 语法 cmp [-clsv][-i 字符数目][--help] File1 File2 描述 cmp 命令 比较 File1 和 File2 参数指定的文件,并将结果写到标准输出。如果为 File1 或 File2 参数指定 -(减号),则
cpm(compare)比较两个文件

语法
cmp [-clsv][-i <字符数目>][--help] 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. 要确定两个文件是否相同
这比较linuxeye1.txt和linuxeye2.txt。如果文件相同,则不显示消息。 如果文件不同,则显示第一个不同的位置;例如:
# echo 'www.linuxeye.com/command/cmp.html' > linuxeye1.txt
# cp linuxeye1.txt linuxeye1.txt_bk
# echo 'www.linuxeye.com/command/' > linuxeye2.txt
# cmp linuxeye1.txt linuxeye1.txt_bk #没有输出
# cmp linuxeye1.txt linuxeye2.txt
linuxeye1.txt linuxeye2.txt differ: byte 26, line 1

2. 要显示不同字节的每个对
这比较文件,然后显示字节数(使用十进制格式)和每个不同的不同字节(使用八进制格式)。例如,如果第26个字节在linuxeye1.txt中是八进制 143,在linuxeye2.txt中是12,如下:
# cmp -l linuxeye1.txt linuxeye2.txt
26 143  12
cmp: EOF on linuxeye2.txt

3. 要比较两个文件,而不写任何消息
# cmp -s linuxeye1.txt linuxeye1.txt_bk
这样,如果文件相同,则给出值 0,如果不同,则给出值 1,或者如果发生错误,则给出值 2。该命令形式通常用在 shell 步骤中。例如:
# if cmp -s linuxeye1.txt linuxeye1.txt_bk
> then
>     echo No change
> fi
No change

# if cmp -s linuxeye1.txt linuxeye2.txt
> then
>     echo No change
> fi

转载请保留固定链接: https://linuxeye.com/command/cpm.html

------分隔线----------------------------
标签:cpm
栏目列表
推荐内容