判断大量文件,从中找出重复的文件,一般用什么算法比较合适?

2017-11-20 18:02:06 +08:00
 suliuyes
CRC32 ? MD5 ? SHA256 ? 还是一般组合起来用?就是想知道正规的做法是怎样的?

顺便问一下,有什么办法获取文件指纹的算法效率能高一点?
1998 次点击
所在节点    问与答
7 条回复
wsy2220
2017-11-20 18:06:19 +08:00
apt-get install fdupes
exch4nge
2017-11-20 18:20:16 +08:00
我觉得瓶颈应该在磁盘 IO 吧……
先按大小分,然后 sha 存入哈希表( C++的话 unordered_multimap )
lerry
2017-11-20 18:32:42 +08:00
github 上看到过有这种项目,现在找不到了,我记得是这样,
先比较文件大小,相同的再用速度快的散列算法比如 md4,如果再相同再用 sha1
兼顾效率和准确性
msg7086
2017-11-20 18:58:40 +08:00
先比较大小,再快速比较文件特征(比如前 1MB+尾 1MB 的 hash ),再全文件 Hash。
neosfung
2017-11-20 21:23:08 +08:00
文本文件还是二进制文件?
Arnie97
2017-11-21 01:51:03 +08:00
Windows 用户可以用这个: http://schinagl.priv.at/nt/dupemerge/dupemerge.html
(我是跟着他家另一款软件 http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html 找到这里的,在资源管理器右键菜单中加入软硬链接的选项,很好用)
suliuyes
2017-11-23 00:41:37 +08:00
@exch4nge
@lerry
@msg7086 感谢思路!🙏

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/408001

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX