背景
如何比较两个文件是否相同的文件?
- 不同平台,Windows、MacOS、Linux
- 最好是用自带的命令进行比较
- 比较的话一般比较摘要,两个文件的摘要相同就认为相同,摘要的话可以有多钟,一般有md5
- 有没有 “目测” 的方法
- 肯定不能通过文件名相同就认为相同,文件名不同的文件也可能相同
不需要任何方法,比较两个文件的字节数,如果字节数相同就认为相同。(不是故意为之的话大部分应该是可以认为相同的)
如下都是3字节,但内容不同,显然不能认为是相同的文件
certutil是Windows自带的命令,且在环境变量路径里头了,可以直接执行。
直接挑选其中一种算法如MD5即可,filename是文件名(必要时包含文件路径)
# 挑选其一即可,两个文件都用相同的算法比较
certutil -hashfile filename MD5
certutil -hashfile filename SHA1 (默认就是sha1,可以省略参数)
certutil -hashfile filename SHA256
最佳实践:直接使用sha1,因为可以省略参数,比较简单,certutil -hashfile xxx
例如:certutil -hashfile C:\Users\stonewang\Desktop\1.txt MD5
显然,上述字节数相同但内容不同的两个文件有不同的md5值,不是同一个文件
shasum也是自带无需安装的,且已经包含在环境变量里头了可以直接执行,filename是文件名(必要时包含路径)
shasum filename
例如:
试的是CentOS7,不清楚其他Linux或者其他版本是否有这个命令。
md5sum是自带的且加入了环境变量里头,filename是文件名必要时包含路径
md5sum filename
例如: