重复文件从哪里来
没有人会故意制造重复文件。同一个附件被保存了两次,一个文件因为重新下载比找出来更快而被再次下载,修改之前为了“以防万一”复制了一个文件夹,照片既从存储卡导入又从某个应用导出,一个备份文件夹是从旧 Mac 复制过来的。浏览器和 Finder 会把第二份副本命名为 report (1).pdf 或 report copy.pdf,但同样常见的是,这些副本在不同的文件夹里有着不同的名字。
按名称搜索会漏掉这些文件,还会匹配到只是同名的文件。查找重复文件的可靠方法是比较它们的内容。
按内容逐字节匹配
Tidy My Mac 分三步比较文件内部的内容,因此读取的内容从不会超过必要的量:
- 文件先按大小分组。如果某个文件没有其他大小完全相同的文件,它就不可能有重复,也绝不会被读取。
- 大小相同的文件,会对其开头和结尾各 64 KB 计算哈希值。大多数不同的文件在这一步就能被区分开。
- 只有仍然匹配的文件才会被完整读取,并用其全部内容的 SHA-256 哈希值进行比较。
从头到尾都匹配的文件会被列为一组,可释放空间最大的排在最前,并显示有多少份副本以及每份的大小。计数器会显示已比较了多少内容,你可以随时取消。
保留哪一份副本
每一组都会把它建议保留的副本排在最前面,标为 Keep,并附上选择它的理由:
- 优先保留位于“文稿”、“图片”、“影片”、“音乐”或“桌面”的副本(人们会有意识地在这些位置归档文件),其次是其他任何位置的副本,最后才是位于“下载”的副本;
- 然后是名称看起来不像副本的文件,优先于
photo (1).jpg或report copy.pdf; - 然后是最旧的副本,它通常是原件;
- 然后是路径最短的那一份。
Select All but Kept 会一次性勾选其余所有副本,你也可以逐个勾选副本。每份副本旁边都有 Quick Look 和 Show in Finder。
总会留下一份副本。你无法勾选一组中最后一个未勾选的副本,移动文件时还会再次应用同一规则,因此没有哪一组会丢失所有副本。在移除任何内容之前,每个文件都会与磁盘核对:自扫描以来大小或日期发生变化的副本会被保留不动,因为它可能已经不再是重复文件了。
你真正能拿回的空间
在 APFS(每台现代 Mac 使用的文件系统)上,在 Finder 中制作的副本往往是克隆:它与原件共享数据,几乎不占用额外空间。仍被“时间机器”快照占用的文件,其空间同样不会被释放。Tidy My Mac 会向文件系统询问删除每份副本实际能释放多少空间,并显示这个数字,而不是副本的总大小。当两者不同时,该组会解释原因。
具有多个硬链接的文件只计算一次,因为删除其中一个链接不会释放任何空间。
哪些内容被排除在外,以及原因
有些副本本来就应该存在。你的“资源库”文件夹、隐藏文件夹、代码仓库、node_modules、应用包、框架、“照片”资源库和虚拟机都会被跳过,因为应用或项目期望其中的每个文件都位于各自的路径上,移除其中一个就会导致损坏。小于你所选最小值(1 MB、10 MB 或 100 MB)的文件也会被跳过,尚未下载到这台 Mac 上的 iCloud 文件同样会被跳过,因为读取它们会触发下载。
如果要找的是几乎相同的照片,而不是完全一样的副本,请使用 Photos,它会比较图片看起来的样子。
你的个人文件夹,或任意文件夹
默认情况下,Duplicates 会在你的个人文件夹中查找,它与填充 Disk Map、Large Files 和 Junk Cleaner 的是同一次扫描。选择 Choose Folder… 可改为查找某一个文件夹,例如外置硬盘或存放旧备份的文件夹。
安全地移除重复文件
你移除的副本会被移到废纸篓,绝不会被直接删除,并记录在 Dashboard 的清理历史中,可通过 Put Back 将它们放回。比较在你的 Mac 上进行,没有任何文件或哈希值会离开它;详情请见隐私政策。在你授予完全磁盘访问权限之前,个人文件夹的扫描会跳过“桌面”、“文稿”和“下载”,而不是为每个文件夹都弹出一次 macOS 提示。
关于Duplicates的常见问题
根据它们的内容。文件必须大小相同,开头和结尾各 64 KB 匹配,然后其全部内容的 SHA-256 哈希值也相同。名称和日期无关紧要,因此重命名过的副本能被找到,而同名的不同文件则不会被误判。
不会。每一组中总有一份副本在其他副本被勾选时无法被勾选,移动文件时会再次检查这条规则,并且只有当它所保留的副本仍然原样留在磁盘上时,才会处理该组。
有些副本是与另一个文件共享数据的 APFS 克隆,或被“时间机器”快照占用。删除它们只会释放仅属于它们自己的那部分空间,Tidy My Mac 显示的就是这个真实数字。
Duplicates 不会,因为“照片”资源库只有作为一个整体才能正常工作。Photos 会通过“照片”应用本身来处理该资源库,并且既能找出几乎相同的照片,也能找出完全相同的照片。