Siftaway 绝不会碰什么,以及为什么
一个清理工具值不值得信任,看的是它拒绝做什么。这一页是完整的安全模型,按检查的执行顺序写。
1. 默认什么都不能删
大多数清理工具默认「能删」,再用一份危险路径黑名单兜底。黑名单永远列不全,漏掉的那一条就是一次数据丢失。Siftaway 反过来:只有公开规则明确写出的路径才会被处理。
一共 73 条清理规则和 9 条保护规则,全部 82 条连同路径都列在规则页。没有「清理任意文件夹」这个功能。
拒绝永远是整体的。一个目录没通过检查,Siftaway 不会「缩小成只删里面一个子目录」,而是整项不动并告诉你原因。部分执行意味着你以为删了 A、实际动了 B,这比不删更糟。
2. 永不删除清单
这一层无论规则怎么写都不放行。就算规则写错了,甚至规则库被恶意替换,这一层仍然拦得住。
| 位置 | 为什么不能碰 |
|---|---|
~/.ssh ~/.gnupg ~/.aws ~/.kube ~/.docker/config.json ~/.local/share/keyrings | 凭据。删了不是「重新下载」能解决的。 |
~/Documents ~/Desktop ~/Pictures ~/Movies ~/Music | 你自己的文件,不是缓存。 |
~/Library/Keychains | 钥匙串。 |
~/Library/Mobile Documents ~/Library/Group Containers | iCloud 会把本地删除同步到云端,这里不存在安全的「只删本地副本」。 |
~/Library/Mail ~/Library/Messages ~/Library/Safari ~/Library/Accounts ~/Library/Cookies ~/Library/Preferences | 邮件、信息、登录态、书签、设置。 |
~/Library/Application Support/MobileSync | iPhone 本地备份,往往是唯一副本。 |
~/.ollama/models ~/.lmstudio/models ~/.cache/huggingface ~/.cache/torch ~/.cache/whisper ~/.cache/tensorflow ~/.cache/wandb | 模型权重。动辄几十 GB 且下载极慢,「重建代价高」在这里等同于不可替代。 |
~/.cache/pypoetry/virtualenvs | 虚拟环境里可能有你手改过的包。 |
/System /usr /bin /sbin /etc /Library/Keychains /Library/Extensions /Library/LaunchDaemons /Library/LaunchAgents /Applications /Volumes | 操作系统、已安装的应用,以及其他磁盘。 |
/usr/local /opt/homebrew | Homebrew 的地盘,清理它是 brew cleanup 的事。 |
| 家目录本身,以及它的任何一级子目录整体 | ~/Library、~/Downloads 这种粒度太粗,下面混着什么都可能。目标至少要再深一级。 |
以下情况同样拒绝:相对路径、含 .. 或控制字符、沿途任何一级是符号链接,或者路径里出现 /Keychains/、/.ssh/、/Mobile Documents/、/Photos Library 这类片段(它们出现在「缓存目录」里,通常说明里面装的其实是数据)。
3. 移动之前,全部再查一遍
从扫描到你点下确认,可能已经过去很久。你可能切了分支、重装了依赖,或者在同一个路径挂上了另一块盘。所以每一项都会在最后一刻重新核对:
- 还是同一个东西。设备号与 inode 必须和扫描时一致。目录被删掉重建过,就跳过。
- 不是链接,仍在同一卷。路径变成了符号链接,或者落到了另一个卷上,一律拒绝。
- 没有被占用。有进程打开着里面的文件,就跳过。探测失败或超时,同样跳过:拿不准的时候,Siftaway 选择不动。
被跳过的项会连同原因一起报告。不会静默跳过,否则你会以为它已经被删了。
4. 只有一个去向:废纸篓
- 清理用的是和在 Finder 里拖进废纸篓相同的系统调用。没有硬删除的代码路径,也没有「跳过废纸篓」的选项。
- Siftaway 从不清空废纸篓,连它自己移进去的东西也不清。只有你自己清空之后,才会报告空间已释放。
- 「撤销这次清理」把这一次移走的东西原样放回原路径。如果原位置已经有了新内容,那一项会留在废纸篓里,绝不覆盖。
- Siftaway 从不请求管理员权限。系统级位置只报告,不修改。
- 启动项通过 launchd 停用,选择记在 launchd 自己的 override 库里,plist 文件原样保留,重新启用只要一下。
5. 规则更新不可能悄悄扩大删除范围
收窄类的变更(多一条排除项、删掉一条规则、风险上调)会自动生效。扩大类的变更(新增路径、风险下调、排除项变短)必须由你当面确认:在你开始扫描的那一刻提示,并告诉你它会在你这台 Mac 上多覆盖什么。即使是你批准过的规则,也越不过上面那份永不删除清单。
发现了漏洞?
请写信到 support@siftaway.com。「该保护的路径没有被保护」是这个产品最严重的一类 bug,我们也会这样对待它。