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

1.cmp

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

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

2.md5

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/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