先聊个实际的场景:你是不是也遇到过这种状况——C盘动不动就标红,打开一看全是“xxx(1).zip”“xxx-副本.jpg”“微信图片_20250315_xxx.jpg”,删又不敢删,留着又占地方。更气人的是,这些文件多半是同一个文件在不同目录下的分身。我最早遇到这个问题时,用的办法是一个个文件夹翻,手动删,结果删错了一次重要的备份,还差点把项目资料搞丢。
后来我开始用专门做重复文件检测和合并的工具。最近这一年多,我一直在用EternalBlaze,配合Windows的硬链接机制做重复文件合并,实测下来效果非常稳定,也删掉了不少隐患。这篇文章不扯晦涩的底层原理,就按我自己的实操经验,把“用EternalBlaze把重复文件合并成硬链接”这件事,拆成三步讲清楚。如果你是零基础,只要照着做,基本不会踩坑。
1. 为什么是“硬链接合并”:先理解你究竟要解决什么问题
1.1 重复文件到底是从哪“长”出来的
在讲硬链接之前,得先认清一个现实:重复文件比你想象中多得多,而且它们不是你手动复制出来的,而是各种软件“顺手”造成的。
说说我遇到过最多的几类来源吧。第一类是下载目录和安装包。一个软件安装完,安装包还在Download里,Program Files目录下又多了一份解压后的文件;第二类是聊天工具的文件存储。微信、QQ默认把图片、视频按日期和聊天对象存了N遍,你转发一次,服务器就给你存一份;第三类是备份工具的增量备份。很多备份软件为了省事,会直接复制整个文件,而不是做增量比较,久而久之同一个照片在你硬盘上可能有三四份;第四类是剪辑和网盘同步工具,这类软件往往会保留多版本缓存,渲染一次出好几份临时文件。
你可能觉得每个文件也就几MB,无所谓。但把这些加起来,几百GB都是常事。我见过最夸张的一台电脑,光“微信文件”目录下就有60多GB的重复图片和视频。所以,重复文件清理不是“洁癖”需求,是实打实的磁盘空间运维需求。
1.2 硬链接和“直接删除”有什么本质区别
很多人的第一反应是:废话,删掉重复的不就行了。这里有个关键问题——你怎么确定两个文件真的是同一个文件?
真正的“同一个文件”,指的是文件内容完全一致。但内容一致并不意味着你只能留一份。如果你把另一份直接删掉,路径就没了,很多软件就不认识了。比如你某个软件的配置目录里恰好有一份同名同内容的文件,你删了它,软件启动时会重新生成,可能没问题;但如果你某个项目脚本里写死了某个路径,那个路径不存在了,程序就会报错。
硬链接的解法非常优雅:它保留了原来的每一个路径,让每一个路径都能正常读文件,但底层磁盘上只保存一份真正的数据。也就是说,文件名还在,路径还在,软件不感知,但磁盘占用瞬间降下来了。
用大白话说,硬链接就像同一套房子开了好几个门,你从哪个门进去,看到的都是同一套房。你堵上其中一个门,其他门照样进出,房子本身并没有被拆掉。这套“房子”就是文件数据,这些“门”就是各个路径下的文件名。
这比“删掉重复文件”友好太多了,因为它不破坏任何目录结构,软件该怎么读还怎么读。
1.3 为什么选EternalBlaze而不是手动做
手动做也不是不行。Windows本身可以用 mklink /H 命令创建硬链接,但前提是你得先自己找出哪些是重复文件。靠人眼对比哈希值、文件大小,几千上万个文件根本不可能。
EternalBlaze这个工具,它本质上是在做两件事:第
