Linux基础命令[10]-cmp

1. cmp 命令说明

cpm(compare):比较两个文件是否完全一致,基本信息如下:

Usage: cmp [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]
Compare two files byte by byte.

  -b  --print-bytes  Print differing bytes.
  -i SKIP  --ignore-initial=SKIP  Skip the first SKIP bytes of input.
  -i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2
    Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2.
  -l  --verbose  Output byte numbers and values of all differing bytes.
  -n LIMIT  --bytes=LIMIT  Compare at most LIMIT bytes.
  -s  --quiet  --silent  Output nothing; yield exit status only.
  -v  --version  Output version info.
  --help  Output this help.

SKIP1 and SKIP2 are the number of bytes to skip in each file.
SKIP values may be followed by the following multiplicative suffixes:
kB 1000, K 1024, MB 1,000,000, M 1,048,576,
GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y.

If a FILE is `-' or missing, read standard input.

Report bugs to <bug-gnu-utils@gnu.org>.

参数如下:

选项作用
-b显示不同的字节
-i跳过n个字节再比较
-l显示所有不同处
-n比较n个字节数量的内容
-s不显示任何信息

2. cmp 命令语法

cmp [选项] 文件1 文件2

3. cmp 命令示例

3.1 不加参数

不加参数时,会显示两个文件第一个不同

cmp 文件1 文件2

在这里插入图片描述

3.2 -b(显示不同的字节)

这个也是显示第1个不同的地方,不过信息详细一下,会显示不同的字节序号。

cmp -b 文件1 文件2

在这里插入图片描述

3.3 -i(跳过字节)

-i 后面加一个数字,表示跳过这些字节再进行比较,也只显示第1个不同的位置,并且是减去跳过的字节数的位置。

cmp -i n 文件1 文件2

在这里插入图片描述

3.4 -l(显示所有不同)

一个不同是一行数据

cmp -l 文件1 文件2

在这里插入图片描述

3.5 -n(比较n个字节)

这个参数适合大文件比较,也是只显示找到的第1个不同。

cmp -n 数字 文件1 文件2

在这里插入图片描述

3.6 -s(不显示信息)

单独这条命令是没有任何信息输出的

cmp -s 文件1 文件2

在这里插入图片描述

其他它的用途是要配合 if 语句使用的。例如 test.sh:

if cmp -s 1.log 1.log.bak
then
  echo "没有差异"
else
  echo "有差异"
fi

运行结果就是:没有差异

在这里插入图片描述

-s 具体的返回值如下,test2.sh:

cmp -s 1.log 1.log.bak
return_value=$?
echo "无差异返回值:"$return_value

cmp -s 1.log 2.log
return_value2=$?
echo "有差异返回值:"$return_value2

cmp -s 1.log 3.log
return_value3=$?
echo "异常返回值:"$return_value3

结果:

无差异返回值:0
有差异返回值:1
异常返回值:2

在这里插入图片描述

4. 总结

cmp 比较两个文件差异。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值