判断两个文件是否相同

本文介绍两种判断文件是否相同的方法:使用cmp命令直接比较文件内容和利用md5散列函数比较文件的散列值。前者适用于完全相同的内容比较,后者则通过散列值提供了一种高效的大致相同性检查。

判断两个文件是否相同


有时我们需要判断两个文件是否相同,比如定时分析的软件,我们可以先判断数据有没有变,数据没变的话,本次定时就不运行了。这个时候就需要用到判断两个文件是否相同。
有两种方法来实现。

1.cmp

cmp命令比较 File1 和 File2 参数指定的文件,并将结果写到标准输出。

命令:cmp --silent file1 file2 && echo 'files are same' || echo 'files are different'

2.md5

一个散列函数,比如 MD5,是一个将任意长度的数据字符串转化成短的固定长度的值的单向操作。任意两个字符串不应有相同的散列值(即,有“很大可能”是不一样的,并且要人为地创造出来两个散列值相同的字符串应该是困难的)。
所以这个方法只是很大可能确保返回的结果是正确的,但是在我们的一般使用中是足够的。

得到md5的命令:md5sum file1
脚本:

#!/bin/bash

file1=(`md5sum $1`) 
file2=(`md5sum $2`)

if [ "$file1" = "$file2" ]
then
    echo "Files have the same content"
else
    echo "Files have NOT the same content"
fi
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值