POST

重复文件清理:按哈希找,别按文件名找

同一个文件被备份三遍、照片存了两个版本,体积翻倍。靠文件名查重不靠谱,得看内容。

NAS 用久了,重复文件是空间浪费的头号来源:手机备份了两次、下载的文件重命名后又存了一份、照片在不同目录各有一份。

按文件名查重不可靠,同一个文件可能名字不同,不同文件也可能同名。

查重的思路

  1. 先按大小分组:大小不同的肯定不是重复,直接排除;
  2. 再按部分哈希:读文件头尾各几 KB 算哈希,快速筛;
  3. 最后全文件哈希:确认是否完全一致。

大部分工具都是这个流程,效率比直接算全文件哈希高得多。

常见工具

fdupes(Linux 命令行):

fdupes -r /mnt/存储空间/照片

加 -d 进入交互模式删除,-N 保留第一个其余删除。

jdupes:fdupes 的改进版,更快。

rmlint:功能强,能生成脚本而不是直接删。

图形界面工具:飞牛如果有空间分析类的应用,也能做查重。

安全第一

查重工具最危险的地方是「批量删除」。原则:

  • 先列出,不直接删:先看报告,确认哪些是重复的;
  • 保留哪个要想清楚:名字更规范的、路径更合理的、修改时间更新的;
  • 硬链接代替删除:有些工具支持把重复文件替换成硬链接,空间省了,文件都还在;
  • 删之前有备份。

哪些地方最容易重复

  • 手机相册备份多次(换了备份工具、换了目录);
  • 下载目录和归档目录各一份;
  • 影视文件既有 1080p 又有 4K,被当成重复(其实是不同版本);
  • 文档的多个修订版;
  • 从云盘拉下来的文件,本地又存了一份。

注意:文件系统层面的重复

如果用的是支持去重的文件系统(比如某些 btrfs 配置),可能已经做了块级去重,文件大小看着正常,实际只占一份。

命令行查重看到的是逻辑大小,要看实际占用:

du -sh --apparent-size 目录
du -sh 目录

两个数差很多,说明有去重或压缩在起作用。

清理之后

  • 更新一下媒体库(删掉的可能是引用中的文件);
  • 跑一次空间统计,确认释放了;
  • 把规则记下来,下次备份别再制造重复。

小结

查重的关键是按内容判断,按大小预筛,别信文件名。

删除永远人工确认,工具只负责把候选列出来。

👁 - 次浏览

留言

← 返回首页