Linux中文件MD5校验

md5sum命令用于生成文件的md5数字摘要,并能够验证文件内容是否发生了改变,间接地还能够检验两个文件内容是否彻底相同。由于md5sum是读取文件内容来计算校验码的,所以只能验证文件内容,而没法验证文件属性。html

[root@xuexi ~]# cp -a /etc/fstab /tmp/fstab

[root@xuexi ~]# cp -a /etc/fstab /tmp/fstab1

生成文件的md5值。shell

[root@xuexi ~]# md5sum /tmp/fstab /tmp/fstab1
a612cd5d162e4620b442b0ff3474bf98  /tmp/fstab
a612cd5d162e4620b442b0ff3474bf98  /tmp/fstab1

发现这两个文件md5值彻底同样,也就说明这两个文件彻底相同。ui

因为生成的md5信息中,每一个md5值后都紧跟着对应的文件的路径(多是相对路径),因而将生成的md5保存到某个文件中,之后能够使用该文件来检查md5值对应文件内容是否发生了修改。spa

例如,将上述两个文件的md5信息保存到fs.md5sum中,而后使用"md5sum -c"能够检查源文件是否完整或是否被修改过。这个检查是内容上的,权限和属性等的改变不会影响md5值,因此不会检测出问题。code

[root@xuexi ~]# md5sum /tmp/fstab /tmp/fstab1 >/tmp/fs.md5sum

[root@xuexi ~]# md5sum -c /tmp/fs.md5sum
/tmp/fstab: OK
/tmp/fstab1: OK

修改/tmp/fstab1的内容,而后再检测。htm

[root@xuexi tmp]# echo aaa >>/tmp/fstab1

[root@xuexi tmp]# md5sum -c /tmp/fs.md5sum
/tmp/fstab: OK
/tmp/fstab1: FAILED
md5sum: WARNING: 1 of 2 computed checksums did NOT match

当使用了"-c"选项时,还支持如下选项:blog

--quiet:不显示验证结果为OK的记录md5

--status:彻底不显示任何信息,只能经过命令的退出状态码判断验证结果是否有failed。只要有一条failed记录,则状态码为1,不然为0。get

[root@xuexi tmp]# md5sum --status -c /tmp/fs.md5sum
[root@xuexi tmp]#
echo $? 1

经过比较md5sum的值,能够判断出多个文件的内容是否彻底一致,但肉眼判断并不方便,因此写出脚本批量判断。脚本见:shell脚本示例:批量比较多个文件的内容是否相同class

相关文章
相关标签/搜索