cmp.1
CMP(1)
CMP(1)
FreeBSD General Commands Manual
CMP(1)
cmp
—
compare two files
cmp
[-l
| -s
| -x
] [-hz
] file1 file2 [skip1 [skip2]]
cmp
实用程序比较任何类型的两个文件并将结果写入标准输出。默认情况下,如果文件相同,则 cmp
是静默的;如果它们不同,则报告出现第一个差异的字节和行号。
字节和行从一开始编号。
可以使用以下选项:
不要跟随符号链接。
-l
, --verbose
打印每个差异的字节数(十进制)和不同的字节值(八进制)。
-s
, --silent
, --quiet
不打印不同文件;仅返回退出状态。
与 -l
类似,但以十六进制打印并使用零作为文件中第一个字节的索引。
对于常规文件,首先比较文件大小,如果不相等则比较失败。
可选参数 skip1 和 skip2 分别是从 file1 和 file2 开始的字节偏移量,比较将从这里开始。 默认情况下,偏移量是十进制的,但可以通过在其前面加上前导 “0x” 或 “0” 来表示为十六进制或八进制值。
cmp
实用程序以下列值之一退出:
0
这些文件是相同的。
1
文件不同;这包括一个文件与另一个文件的第一部分相同的情况。 在后一种情况下,如果未指定 -s
选项,则 cmp
将写入标准错误,即在较短的文件中已达到 EOF(在发现任何差异之前)。
>1
发生错误。
假设一个名为 example.txt 的文件具有以下内容:
a b c
将标准输入与 example.txt 进行比较:
$ echo -e "a\nb\nc" | cmp - example.txt
与上述相同,但在 stdin 的第三个字节中引入了更改。 显示字节数(十进制)和不同的字节(八进制):
$ echo -e "a\nR\nc" | cmp -l - example.txt 3 122 142
比较 example.txt 和 /boot/loader.conf 的文件大小,如果不相等则返回 1。 请注意, -z
只能用于常规文件:
$ cmp -z example.txt /boot/loader.conf example.txt /boot/loader.conf differ: size
比较 stdin 和 example.txt ,省略 stdin 的前 4 个字节和 example.txt 的前 2 个字节:
$ echo -e "a\nR\nb\nc" | cmp - example.txt 4 2
diff(1), diff3(1)
cmp
实用程序应与 IEEE Std 1003.2 (“POSIX.2”) 兼容。 -h
-、
-x
和 -z
选项是标准的扩展。
在 Version 1 AT&T UNIX 中出现了 cmp
命令。
June 20, 2020
FreeBSD 13.1-RELEASE
最后更新于