我想找重复数据删除算法,主要是用来查找重复文件。看起来第一步是识别具有相同时间戳、大小和文件名的文件。我可以对这些文件进行MD5校验和比较。除此之外,还可以比较文件的内容。我还应该注意什么?
发布于 2009-06-19 14:39:47
您有操作系统元信息(大小和时间戳)。其他元信息包括权限。您可以比较inode和dnode信息,但这并不意味着什么。
您有一个摘要(校验和)。
你有一个字节接一个字节的细节。
还能有什么呢?你还想要其他的总结吗?摘要比逐字节详细信息提供的信息少。但是你可以很容易地发明出很多其他的摘要。摘要只有在您将其保存在某个位置时才有用,这样您就不会一直重新计算它。
如果你想为“母版”副本保存摘要,你可以发明任何你想要的摘要。行计数,字母"e“计数,平均行长,任何可能是一个有趣的摘要。
发布于 2015-01-04 15:07:43
Md5存在冲突问题(具有相同md5的两个文件可能仍具有不同的内容。)
如果对每个文件执行SHA-1哈希并比较哈希,则只有内容完全相同的文件才具有相同的哈希。句号。
这也有助于忽略它们是否具有不同的名称、修改日期等。
有些人走得更远,并使用sha-256,但这真的是没有必要的。大多数商业重复数据消除设备都依赖于SHA-1 (也称为SHA-160)。
如果使用SHA-1比较文件,则不需要任何其他内容。
我之所以知道这一点,是因为我与不同的重复数据删除系统和供应商合作多年,我还编写了一个样本重复数据删除系统。
发布于 2009-06-19 14:38:05
有一些产品可以做到这一点。查找重复文件侦测。它可以通过名称、时间戳、md5和其他算法进行匹配
https://stackoverflow.com/questions/1018282
复制相似问题