Linux cmp命令用于比较两个文件是否有差异,使用参数可以对文件部分内容进行比较。
$ cmp --help
用法: cmp [选项]... 文件1 [文件2 [跳1 [跳2]]]
逐字节比较两个文件。
<跳1> 和 <跳2> 分别是每个文件要略过的字节数。
长选项的必需参数也是相应短选项的必需参数。
-b --print-bytes 打印出内容相异的字节
-i, --ignore-initial=SKIP 两个输入内容都略过前 SKIP 字节
-i, --ignore-initial=跳1:跳2 略过 <文件1> 的前 <跳1> 个字节和文件 <文件2>
的前 <跳2> 个字节。
-l, --verbose 输出所有相异字节的字节数和内容
-n, --bytes=限制 最多比较 <限制> 个字节
-s, --quiet, --silent suppress all normal output
--help 显示此帮助信息并退出
-v, --version 输出版本信息并退出
<跳> 值可以加上以下的单位:
kB=1,000、K=1,024、MB=1,000,000、M=1,048,576、GB=1,000,000,000、G=107,374,182,
还有 T、P、E、Z、Y,如此类推。
如果文件是 “-” 或没给出,则从标准输入读入内容。
如果输入相同,则退出状态为 0;1 表示输入不同;2 表示有错误产生。
命令示例
比较两个文件是否相同,并查看返回值
$ cmp 6M00.bin 6MFF.bin
6M00.bin 6MFF.bin 不同:第 1 字节,第 1 行
$ echo $?
1
$ cmp 6M00.bin 6M00.bin
$ echo $?
0
特殊用法,指定偏移位置,指定比较数量。
$ cmp -i 0:102 6M00.bin 6MFF.bin -n 100
6M00.bin 6MFF.bin 不同:第 1 字节,第 1 行
$ echo $?
1
Tags:
shell cmp
shell cmp