我想找到重复数据删除算法,主要是为了找到重复的文件。看起来第一步是识别具有相同时间戳、大小和文件名的文件。我可以对这些文件进行 MD5 校验和比较。除此之外,还可以比较文件的内容。我还应该注意什么?
问问题
3546 次
3 回答
3
您有操作系统元信息(大小和时间戳)。其他元信息包括权限。您可以比较 inode 和 dnode 信息,但这并不意味着什么。
您有一个摘要(校验和)。
您有逐字节的详细信息。
还能有什么?您是否要求其他摘要?摘要比逐字节详细信息提供的信息更少。但是您可以轻松发明许多其他摘要。仅当您将摘要保存在某个地方时,摘要才有用,这样您就不会一直重新计算它。
如果您想为“主”副本保存摘要,您可以发明任何您想要的摘要。行数,字母“e”数,平均行长,任何东西都是一个潜在的有趣的总结。
于 2009-06-19T14:39:46.797 回答
2
md5 有冲突问题(两个具有相同 md5 的文件可能仍然有不同的内容。)
如果对每个文件执行 SHA-1 哈希并比较哈希,则只有内容完全相同的文件才会具有相同的哈希。时期。
这也有助于忽略它们是否具有不同的名称、修改日期等。
有些人加倍努力并使用 sha-256,但这确实没有必要。大多数商业重复数据删除设备依赖于 SHA-1(也称为 SHA-160)。
如果您使用 SHA-1 比较文件,则不需要任何其他内容。
我知道这一点是因为我与不同的重复数据删除系统和供应商合作多年,并且我还编写了一个示例重复数据删除系统。
于 2015-01-04T07:07:43.037 回答
1
有可用的产品。寻找重复文件侦探。可以按名称、时间戳、md5等算法进行匹配
于 2009-06-19T14:38:05.240 回答