【免费下载链接】pinkbin
扫盘 · 看懂 · 删除。磁盘扫描+清理Agent(Tauri 2 + React + Rust)
删文件最怕什么?删错。聊天记录、账号数据、用户收藏,删一个就是一场灾难。Pinkbin 是一个开源磁盘清理工具(Tauri 2 + React + Rust),主打"扫盘 · 看懂 · 删除",它的底气来自一套三层保险设计:第一层用红线断言(安全测试)保证清理规则永远碰不到敏感数据;第二层默认把删除的文件送进系统回收站,右键就能还原;第三层提供可选的7 天隔离区,给敏感删除再加一道锁。这篇文章用大白话把这三层保险拆开讲清楚,普通用户也能看懂"删错了怎么办"。
先看一眼:Pinkbin 的清理界面长什么样
实际使用界面:左侧树状视图显示每个文件夹的占用,中间可把陌生文件夹拖给 AI 分析,右侧 Studio 卡片里按 scope(清理项)逐个执行清理。
三层保险总览:每类风险都有人拦
Pinkbin 团队把"谁挡哪种风险"写成了明确的风险矩阵(见 docs/wechat_scaffolds_and_harness.md):
| 风险场景 | 谁来拦 |
|---|---|
| 清理脚本把规则写宽了(可能误删) | 红线断言(CI 强制,不过不能合入) |
| 用户手抖点错按钮 | 两步确认+系统回收站可还原 |
| AI 顾问给错了文字建议 | AI 只有"说话权",架构上没有删除按钮 |
| 系统删除 API 异常 | 报错直接抛出,不会"默默删掉" |
下面逐层拆解。
第一层保险:红线断言——先证明"不会误删"
Pinkbin 的每个清理脚本(比如微信、Conda)都不是单独一份配置,而是由两个文件组成:
- 一份 TOML 配置,声明"哪些路径可以清"
- 一份安全测试(safety test),用代码断言的方式证明规则是安全的
安全测试里包含两类断言(模板见 crates/scaffold/tests/_templates/scaffold_safety.rs):
- 正向断言:每个清理目标至少能命中一条真实路径——证明"确实能用"
- 红线断言:聊天数据库、账号密钥、用户收藏等路径必须一条都不命中——证明"不会误伤"
模板里有一句开发铁律:"红线断言失败 = 清理规则写宽了——回去收紧规则,不要放宽测试。"
看看真实测试里保护的是什么。以微信清理为例,crates/scaffold/tests/wechat_pc_safety.rs 里列了几十条红线,全部要求 zero-match(零命中):
- 聊天记录库:
db_storage/message/msg.db、contact.db、emoticon/em.db - 收藏与朋友圈:
business/favorite/fav.dat、business/sns/moments.db - 账号登录状态:
config/account.cfg、all_users/login/login.dat - 用户自制表情包面板
CustomEmotion(这被明确视为用户数据而非缓存)
Conda 清理同样如此,crates/scaffold/tests/conda_safety.rs 的红线包括 conda 安装根目录本身(命中 = 整个 conda 被回收,最危险)、base 环境的python.exe与site-packages、用户配置.condarc和环境注册表environments.txt。连"site-packages里含packages字样但不是pkgs"这种容易混淆的路径都专门做了断言。
关键机制:这些测试跑在 CI(持续集成)里,任何提交新脚本或修改规则的行为,测试不通过就无法合入代码库——不管是人写的还是 AI 写的。这也是为什么 Pinkbin 目前只保留微信 + Conda 两份脚本:老仓库里曾有过 36 份未经验证的脚本(其中一份会误删游戏和编辑器里内嵌的依赖目录),被直接砍掉。宁少勿错。
第二层保险:系统回收站——默认"删了也能还原"
规则再严,也防不住用户自己点错。Pinkbin 的对策是把"默认行为"设计得足够安全:
- 默认进系统回收站:所有清理项的默认模式都是
mode = "recycle"(见 docs/SCAFFOLD-AUTHORING.md),底层通过 trash-rs 把文件移入系统回收站,而不是直接抹掉——删错了可以右键回收站还原。永久删除(delete模式)只有在用户显式选择时才会出现 - 两步确认按钮:任何带删除的按钮,第一次点击会变红,提示"5 秒内再点一次",再次点击才真正执行(见 apps/desktop/src/components/CleanupModal.tsx)。手抖点一下不会出事
- 没有"清空所有"总按钮:只能按 scope(单个清理项)逐个执行,误操作的影响范围被天然限制住
- 执行前先看 dry-run 预览:真正执行前会先展示"将要删除的前 N 条路径",让你亲眼确认里面没有想留的东西
删之前看一眼、删错了去回收站捡回来——这是最朴素的保险,也是最有效的。
初始空态:顶部"选择磁盘或文件夹"→ 点扫描后才会出现内容;右侧 Studio 已经识别出微信 / Conda 两个清理脚本,等待扫描定位。
第三层保险:7 天隔离区——敏感删除的额外缓冲
如果某个删除让你格外不放心,还有第三层:可选的7 天隔离区(quarantine)。
开启后,文件不会进回收站,而是被移动到~/.pinkbin/quarantine/(你电脑用户目录下的隐藏文件夹)暂存 7 天,命名带上时间戳(见 crates/executor/src/lib.rs),7 天后才真正清理。跨盘隔离会自动退化为"复制→删除",保证数据先完整落盘再动原件。
配合undo 日志,每一次删除操作(无论回收站、隔离还是直删)都会追加记录到~/.pinkbin/undo.jsonl——一个纯文本日志,随时能查"我哪天、删了什么、去了哪里"。这些记录只存在你本机,不上云。
顺带一提:AI 只有"嘴",没有"手"
很多工具担心"AI 误删",但 Pinkbin 在设计阶段就定下:产品里的 AI 顾问架构上根本没有删除权限——它只能输出文字建议,"删不删"永远是用户自己点按钮决定。AI 接收的也只有目录元数据(路径名、大小、文件数、后缀分布、最多 20 条样本路径),永远不读文件内容、不上传文件内容。
快速上手:3 步开始安全清理
- 获取 Pinkbin:Windows 用户可直接下载 release 安装包;开发者可以
git clone https://gitcode.com/gh_mirrors/pi/pinkbin后pnpm install && pnpm tauri dev本地构建 - 选盘扫描:打开应用 → 顶部"选择磁盘或文件夹"→ 点扫描,Windows 上直读 NTFS MFT,整盘 C: 通常 2–5 秒出彩色 treemap 和树视图
- 按 scope 清理:遇到陌生大文件夹,先拖进中间聊天框问 AI"这是什么、能不能删";微信 / Conda 则在右侧 Studio 卡片里逐项勾选,默认回收站、两步确认后执行
总结:为什么敢放心用?
Pinkbin 的答案不是"承诺小心",而是机制:
- 🧪红线断言——敏感路径必须零命中,CI 不过不合入,规则写宽了直接打回
- 🗑️系统回收站——默认删除可还原,两步确认防手抖,执行前先预览路径
- 📦7 天隔离区 + undo 日志——敏感删除多缓冲一周,所有操作本机留痕可查
三层保险层层递进:第一层保证"规则不出错",第二层保证"点错能挽回",第三层保证"拿不准时还有时间后悔"。正如项目一句话口号:宁可错放 1000GB,不可错删一个文件。想深入理解内部原理,推荐阅读面向普通用户撰写的 docs/ARCHITECTURE.md("三层保险"在第 4 节)以及 docs/why-pinkbin.md。
【免费下载链接】pinkbin
扫盘 · 看懂 · 删除。磁盘扫描+清理Agent(Tauri 2 + React + Rust)
相关推荐
Learner-Sampler-Coordinator 三层解耦:higgsfield 凭什么敢说"专为 GPU 利用率而生"?
Learner Sampler Coordinator 三层解耦:higgsfield 凭什么敢说"专为 GPU 利用率而生"? 训练一个万亿参数的大模型,最昂
人工智能大模型深度学习分布式训练预训练强化学习GetJobs系统架构深度剖析:三层分离设计详解
GetJobs系统架构深度剖析:三层分离设计详解 GetJobs作为一款AI驱动的全平台自动投简历脚本,集成了boss、前程无忧、猎聘、智联招聘等主流招聘平台,
后端前端RPAAI 应用为什么AI总敢自己拍板:skills的4层决策完备性门禁设计解析
为什么AI总敢自己拍板:skills的4层决策完备性门禁设计解析 用 AI 编程 Agent 写代码时,最容易踩的坑是:你没说清楚的地方,它替你"拍板"了。 s
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考