如何检查重复文件?

如何检查重复文件?

我有一个外置硬盘,我曾多次备份过文件。有些文件在备份期间被修改过,有些则没有。有些文件可能被重命名了。现在我的空间快用完了,我想清理重复的文件。

我的想法是检查md5sum驱动器上的每个文件,然后查找重复文件和diff相关文件(以防万一,哈哈)。这是最好的方法吗?还有哪些其他方法可以检查重复文件?

答案1

计算每个文件的 MD5 哈希值(问题和答案链接中建议)似乎是一种相当“昂贵”的解决问题的方法。忽略每个哈希值的实际计算,仅仅读取每个文件就会在(极慢的)硬盘上产生大量工作。

我对“算法”的建议是这样的:

  • 获取驱动器(或目录,或其他)上每个文件的准确长度。这应该相对便宜,因为长度可能存储在文件系统的索引部分中。
  • 对于每个具有多个关联文件的独特文件大小,计算每个文件的 MD5 并比较哈希值以发现重复项。虽然可能性不大,但两个长度相同的文件可能会哈希为相同的值。如果您不想冒误报的风险,请逐字节比较文件或在哈希比较之后进行比较。
  • 对于其他每个唯一文件大小,都没有任何重复项。

答案2

如果 md5 表示这是同一个文件,则不需要 diff。人们已经多次解决了这个问题,因此您可以按照他们的方式进行做过

答案3

相关内容