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