V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
suliuyes
V2EX  ›  问与答

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

  •  
  •   suliuyes · 2017-11-20 18:02:06 +08:00 · 2085 次点击
    这是一个创建于 2590 天前的主题,其中的信息可能已经有所发展或是发生改变。
    CRC32 ? MD5 ? SHA256 ? 还是一般组合起来用?就是想知道正规的做法是怎样的?

    顺便问一下,有什么办法获取文件指纹的算法效率能高一点?
    7 条回复    2017-11-23 00:41:37 +08:00
    wsy2220
        1
    wsy2220  
       2017-11-20 18:06:19 +08:00   ❤️ 1
    apt-get install fdupes
    exch4nge
        2
    exch4nge  
       2017-11-20 18:20:16 +08:00
    我觉得瓶颈应该在磁盘 IO 吧……
    先按大小分,然后 sha 存入哈希表( C++的话 unordered_multimap )
    lerry
        3
    lerry  
       2017-11-20 18:32:42 +08:00   ❤️ 2
    github 上看到过有这种项目,现在找不到了,我记得是这样,
    先比较文件大小,相同的再用速度快的散列算法比如 md4,如果再相同再用 sha1
    兼顾效率和准确性
    msg7086
        4
    msg7086  
       2017-11-20 18:58:40 +08:00
    先比较大小,再快速比较文件特征(比如前 1MB+尾 1MB 的 hash ),再全文件 Hash。
    neosfung
        5
    neosfung  
       2017-11-20 21:23:08 +08:00 via iPhone
    文本文件还是二进制文件?
    Arnie97
        6
    Arnie97  
       2017-11-21 01:51:03 +08:00 via Android   ❤️ 1
    Windows 用户可以用这个: http://schinagl.priv.at/nt/dupemerge/dupemerge.html
    (我是跟着他家另一款软件 http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html 找到这里的,在资源管理器右键菜单中加入软硬链接的选项,很好用)
    suliuyes
        7
    suliuyes  
    OP
       2017-11-23 00:41:37 +08:00
    @exch4nge
    @lerry
    @msg7086 感谢思路!🙏
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:35 · PVG 22:35 · LAX 06:35 · JFK 09:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.