Linux cmp 命令 | 逐字节比对两个文件是否相同
• 最后修改:2025-07-03 • 阅读量:11
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 系统中使用。