我想找到重复数据删除算法,主要是为了查找重复文件。看起来第一步是识别具有相同时间戳,大小和文件名的文件。我可以对这些文件进行MD5校验和比较。除此之外,还可以比较文件的内容。我还应该注意什么?
答案 0 :(得分:2)
您有操作系统元信息(大小和时间戳)。其他元信息包括权限。您可以比较inode和dnode信息,但这并不意味着什么。
您有摘要(校验和)。
您有逐字节的详细信息。
还有什么?你在问其他摘要吗?摘要信息比逐字节详细信息少。但是你很容易发明很多其他的摘要。摘要仅在您将其保存到某个地方时才有用,因此您不会一直重新计算它。
如果要保存“主”副本的摘要,可以创建所需的任何类型的摘要。行数,字母“e”计数,平均行长度,任何内容都是可能有趣的摘要。
答案 1 :(得分:1)
有适用于此的产品。寻找重复文件侦探。它可以按名称,时间戳,md5和其他算法进行匹配
答案 2 :(得分:0)
Md5存在碰撞问题(具有相同md5的两个文件可能仍然具有不同的内容。)
如果对每个文件执行SHA-1哈希并比较哈希值,则只有具有完全相同内容的文件才会具有相同的哈希值。周期。
这也有助于忽略它们是否有不同的名称,修改日期等。
有些人加倍努力并使用sha-256,但实际上并没有必要。大多数商业重复数据删除设备都依赖于SHA-1(也称为SHA-160)。
如果您使用SHA-1比较文件,则不需要任何其他内容。
我知道这一点,因为我已经与不同的重复数据删除系统和供应商合作了很多年,我还编写了一个示例重复数据删除系统。