Linux cmp 命令 | 逐字节比对两个文件是否相同
Linux cmp ( compare ) 命令用于逐字节比对两个文件是否相同或存在差异。
cmp 命令的定义解释
cmp ( compare ) 命令用于逐字节比对两个文件是否相同或存在差异,如果相同不会有任何输出;如果不同则输出不同的位置(不同的字符在第几行,从文件开头的第几个字符)。cmp 命令至少输入一个文件名,如果不指定另一个文件或指定的的另一个文件名为 -(代表标准输入),则指令从标准输入中读取数据来对比比较。
cmp 命令语法
cmp [选项]... 文件1 [文件2 [跳过1 [跳过2]]]
[文件1]:第一个文件名,必须提供[文件2]:可以不提供,不提供时从标准输入读取内容[跳过1]:跳过第一个文件中的开头指定的字符数,从下一个字符开始对比比较,默认为0[跳过2]:跳过第二个文件中的开头指定的字符数,从下一个字符开始对比比较,默认为0跳过: 可以附加以下后缀 kB (代表乘1000), K (代表乘1024), MB (代表乘1,000,000), M (代表乘1,048,576), GB (代表乘1,000,000,000), G (代表乘1,073,741,824), 往后还有 T, P, E, Z, Y.
cmp 命令使用示例
1、对比比较文件 file1.txt 和 file2.txt 是否存在差异:
cmp file1.txt file2.txt
输出:
file1.txt file2.txt 不同:第 53 字节,第 4 行
2、对比比较文件 file1.txt 和标准输入的内容是否存在差异:
cmp file1.txt
或
cmp file1.txt -
输入内容:
The cmp command in Linux/Unix stands for "compare".
按 Ctrl + D 结束标准输入。
输出:
file1.txt - 不同:第 1 字节,第 1 行
cmp 命令选项解释
如下给出了 Linux cmp 命令中所有选项的解释说明:
| 选项 | 解释说明 |
|---|---|
| -b, print-bytes | 输出显示不同的字节 |
| -i, --ignore-initial=SKIP | 从两个输入都跳过 SKIP 字节,开始比对比较 |
| -i, --ignore-initial=SKIP1:SKIP2 | 第一个文件跳过SKIP1字节,第二个文件跳过SKIP2字节 |
| -l, --verbose | 输出字节数和不同的字节值 |
| -n, --bytes=LIMIT | 最多比较LIMIT字节 |
| -s, --quiet, --silent | 抑制所有正常输出,即:不输出正常信息 |
| --help | 显示帮助信息后退出 |
| -v, --version | 显示版本信息后退出 |
注意:长选项的强制参数对于短选项也是强制的。
结语
在本教程中我们介绍了如何使用 cmp ( compare ) 命令用于于逐字节比对两个文件是否相同或存在差异,如果相同不会有任何输出;如果不同则输出不同的位置(不同的字符在第几行,从文件开头的第几个字符)。cmp 命令至少输入一个文件名,如果不指定另一个文件或指定的的另一个文件名为 -(代表标准输入),则指令从标准输入中读取数据来对比比较。
该 cmp 命令可以在 Linux 系统中使用,也可以在 FreeBSD 系统中使用。