nas-tools 重复文件批量检测指南:3步找出冗余副本,给NAS释放空间
【免费下载链接】nas-toolsNAS媒体库管理工具项目地址: https://gitcode.com/GitHub_Trending/na/nas-tools
上周你的NAS可用空间从2TB掉到了400GB,翻了半天目录也找不到"大头"在哪——多半是重复文件在偷偷吃空间。nas-tools 重复文件检测能帮你批量找出这些冗余副本,核对无误后再清理释放空间。读完这篇,你能独立跑通从启动容器到拿到第一份检测报告的全流程,并给它配一条每周自动执行的检测任务。
2分钟搞懂它怎么找重复文件
它的思路很朴素,是一步比一步严格的三关:先看文件大小,大小不一样的直接排除,因为最省时间;大小一样的,只读文件开头一小段算个哈希(哈希可以理解为文件的"指纹",内容不同,指纹就不同);指纹还对上的,最后才完整读一遍文件,再算一次全量指纹。走完三关还一样,才算确认是重复文件,大致就是大小比对 → 头部采样 → 全量哈希 → 标记重复这条流水线。好处是大部分"嫌疑人"在第一关就被刷掉了,不用对每个文件都硬读全部内容。
📦 第一次上手——从启动到拿到第一份报告
第一次别贪多,按最小路径走一遍就够:
- 拉取镜像并启动容器,把你想扫描的目录挂进去:
docker pull nastool/nas-tools:latest docker run -d --name nas-tools -v /volume1/media:/media nastool/nas-tools:latest- 浏览器打开 http://localhost:3000 进入 WebUI(网页管理界面)。
- 新建检测任务,扫描路径先只选一个目录,比如 /media。
- 检测模式选"标准检测",首次使用不必追求最高精度模式。
- 文件类型只勾视频和图片,最小文件大小设 10MB,把琐碎小文件过滤掉。
- ✅ 先勾选预览(dry-run,只出报告不执行)跑一遍,确认报告里没有误伤的文件,再取消预览、实际执行清理。
- 在结果页查看重复分组和预计可释放的空间。
记住这条安全原则:任何清理动作之前,先 dry-run 看一遍"将被处理"的清单。
三个你大概率会遇到的场景
媒体库瘦身——视频/音乐重复去重
同一部电影下过两次、同一张专辑存了两个画质,这类文件单个体积就大,最该先查。
- 新建检测任务,文件类型只选视频,最小尺寸调到 500MB 左右。
- 结果里按组核对,保留体积更大(通常码率更高)的那份。
- 批量操作前先预览确认清单,再统一移入回收站。
先摸一下底也能帮你估算工作量:
find /media -name "*.mkv" -o -name "*.mp4" | wc -l预期效果:几万部文件的库里通常能找出若干十组重复,一次清理省下的空间以 GB 计。
多设备备份产生的冗余副本
几台手机、电脑都往同一块 NAS 里备份,同一批旅行照可能存了三份。
- 检测任务指向备份根目录,文件类型选图片。
- 把缩略图缓存、系统生成目录加进排除规则,这类小文件多、扫起来白花时间。
- 同组重复保留元信息最完整的一份,其余移入回收站。
find /backup -type d -name "*thumb*"预期效果:图片类重复往往是备份冗余的主力,清理后备份目录体积肉眼可见地变小,备份速度也会跟着变快。
下载目录的"自动去重"流水线
下载目录是天然的重复制造机:重复下载、换个名字再存一遍、中断后重新下载,全堆在这里。
- 把检测任务指向下载目录,只扫大文件。
- 频率设成每小时执行一次。
- 处理方式选"移入回收站",别直接永久删除。
- 每隔一两周清空一次回收站。
整条流程就是扫描 → 比对 → 标记 → 移动,你下次翻下载目录时,它还是干净的。
⚙️ 让它自己跑——自动化与排除规则
手动跑几次之后,就该交给定时任务了。在"任务计划"里新建一条任务,比如每周日凌晨 3 点执行一次全量扫描,完成后推送一条通知给你,白天打开 NAS 时顺手看一眼结果就行。
排除规则决定它"不碰什么",分三类,按需加:
| 规则类型 | 例子 | 作用 |
|---|---|---|
| 路径 | /data/system、缩略图缓存目录 | 整目录跳过不扫 |
| 文件名正则(按规则匹配文件名的写法) | .part 未完成下载、.torrent | 按扩展名过滤 |
| 文件大小 | 小于 10MB 不扫描 | 小文件不值得花检测时间 |
通知模板不用花哨,信息够就行,例如:
【nas-tools 检测完成】 扫描路径:/media 重复组:12 组,涉及 30 个文件 预计可释放:8.4 GB✅ 遇到这些情况别慌
检测任务跑完了,报告却是空的?大概率是权限不足或排除规则太宽。用docker exec nas-tools ls <扫描路径>确认容器里读得到这个目录,再逐条检查排除列表。
扫描很慢、CPU 占用一直很高?算哈希本来就吃 IO,把任务挪到夜间低峰执行、调低并发扫描数即可。
几百GB的大文件检测卡住或超时?完整读取大文件耗时最长,改用头部采样模式,或先把超大文件单独排除,其余照扫。
某个重复文件一直删不掉?多半被媒体服务器之类的进程占着,先停掉占用它的服务,或把删除动作改到空闲时段执行。
手滑把不该删的删了?直接删除没有恢复机制,所以执行前务必先预览;平时优先用回收站,并保留一份定期备份兜底。
⚡ 再往前走一步
- 10TB+的大存储:别指望一次扫完,按目录拆成多个任务、控制并发、只在夜间跑,比堆硬件更管用。
- 媒体服务器联动:跑着 Plex 或 Jellyfin 的话,去重时优先保留高质量版本,避免媒体库里出现重复条目。
- 跨存储去重:如果同时同步了云盘,可以把本地与云端副本对比一遍,先定保留优先级(比如本地优先),再决定删哪边。
- 结果再利用:检测报告可以定期存一份,积累几周就能看出哪类文件最容易重复,反哺你的下载和备份习惯。
今天就动手,从最小的一步开始:
- 跑通 Docker 启动,打开 WebUI 确认能登录
- 给媒体目录建一个检测任务,先预览、不执行
- 把缩略图缓存、未完成下载加进排除规则
- 加一条每周自动执行并推送通知的定时任务
更多细节以项目的 Wiki、官方文档和社区讨论为准,遇到拿不准的问题,直接去仓库提 Issue 或到社区问一嘴。
【免费下载链接】nas-toolsNAS媒体库管理工具项目地址: https://gitcode.com/GitHub_Trending/na/nas-tools
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考