Claude Code 揭密:iPhone 已删照片竟藏身隐藏缓存,多达 14.5 万张

Claude Code 扫描发现 iPhone 隐藏缓存残留 14.5 万张已删照片,揭示删除不等于消失。
文章讲述一位用户借助 Claude Code 对个人设备做存储审计,意外发现系统隐藏缓存中存有 145,000 张本应已从 iPhone 删除的照片。事件在 Hacker News 引发小范围讨论,但触及“删除后数据去向”这一普遍议题。文章分析了残留成因:缩略图与预览缓存、绕过统一清理逻辑的第三方缓存目录、云同步的本地中间态。作者指出这带来隐私与存储双重代价,并为普通用户提出定期审计、借助 AI 工具降低门槛、删除后验证、关注第三方缓存策略等建议,同时提醒使用命令行 AI 工具扫描本地文件需注意权限边界。
一次意外的数据考古
一位用户借助 Claude Code 对个人设备进行深度扫描,试图找出占用存储空间的“元凶”。结果出乎意料:系统深处的一个隐藏缓存目录中,静静躺着 145,000 张本应早已从 iPhone 上删除的照片。这个数字不是小数目——它接近许多用户数年拍摄量的总和。事件在 Hacker News 上引发讨论,虽然热度不算爆炸(29 分、4 条评论),但触及了一个所有人都该关心的议题:当我们点击“删除”时,数据到底去了哪里?
Claude Code 扮演了数据侦探
Claude Code 本是 Anthropic 推出的命令行 AI 编程助手,擅长在终端环境中理解代码、执行指令、分析文件系统。这次它被用来做“存储审计”:遍历目录、识别异常文件、定位大体积缓存。正是这种自动化、可编程的排查能力,让一个普通用户很难手动发现的隐藏缓存浮出水面。
这个案例的有趣之处在于工具的使用方式——不是写业务代码,而是当作系统诊断助手。用户只需描述目标(找出被删除却仍占空间的文件),Claude Code 就能生成并执行相应的查找命令,最终将 145K 张照片的藏身之处锁定。
Claude Code 是 Anthropic 于 2025 年推出的代理式(agentic)命令行编程工具,与普通聊天式 AI 的最大区别在于它能在本地终端中自主执行多步操作:读取文件、运行 shell 命令、遍历目录、分析输出结果,并根据中间结果决定下一步动作。它通常以 npm 包形式安装,运行在用户自己的机器上,通过 API 调用模型能力,因此具备对本地文件系统的实际访问权限。这种“能动手”的特性使它适合承担代码重构、日志排查、批量文件处理等任务,也解释了为何有用户会把它当作系统诊断助手来扫描存储。
删除不等于消失
为什么删掉的照片还留在设备里?常见的原因包括:
- 缓存与缩略图机制:相册应用为了流畅体验,会在多个层级生成缩略图、预览图和临时副本,删除原图时这些衍生文件未必同步清理。
- “最近删除”之外的残留:系统相册的回收站有保留期限,但部分第三方应用或系统服务会建立自己的缓存目录,绕过统一的清理逻辑。
- 同步与备份的中间态:iCloud 或其他云服务的本地缓存可能保留已删内容的副本,等待下一次同步周期才真正释放。
这些机制单独看都有合理性,叠加起来却造成“已删除数据长期驻留”的隐私盲区。14.5 万张照片的规模说明,问题不是偶发的一两个文件,而是系统性的缓存管理缺口。
需要区分几个常被混淆的概念:文件系统层面的“删除”通常只是解除目录项对数据块的引用,数据块本身在被新数据覆盖前仍可恢复;应用层面的“删除”则往往只是从应用自己的数据库中移除记录,衍生文件(缩略图、预览缓存、编辑历史)可能完全不受影响。iOS 的“最近删除”相簿提供 30 天保留期,属于系统级统一机制,但第三方应用和部分系统服务(如照片分析、机器学习索引)会建立独立缓存,不经过这一机制。因此“删除”在不同层级有不同语义,残留往往发生在层级交界处。
隐私与存储的双重代价
这件事的意义超出“省点空间”的层面。已删除的照片可能包含敏感信息、私人场景或不愿留存的内容,它们本应随删除操作消失,却在用户不知情的情况下继续占据存储、可被其他程序读取。对于注重隐私的用户,这是一个需要主动检查的信号。
从存储角度看,海量隐藏缓存也是设备空间告急的隐形推手。用户往往以为是应用体积膨胀,真正的大户却藏在看不见的角落。
从隐私合规视角看,这类残留涉及“数据最小化”与“存储限制”原则:个人数据不应在目的达成后继续保留。欧盟 GDPR 第 17 条“被遗忘权”要求控制者在无正当理由时及时删除个人数据,而缓存中长期驻留的已删照片在技术上构成持续处理。对普通用户而言,这意味着删除请求与实际数据处理之间可能存在落差;对企业而言,则提示缓存生命周期管理应纳入数据治理范畴,而非仅视为性能优化问题。
给普通用户的启示
这起事件提供了几条可操作的思路:
- 定期做存储审计:不要只看系统设置的存储概览,借助命令行或专业工具深入目录层级,找出异常大的缓存文件夹。
- 借助 AI 工具降低门槛:像 Claude Code 这样的命令行助手,能把复杂的文件系统排查变成自然语言驱动的任务,普通用户也能完成过去需要一定技术背景的操作。
- 删除后验证:对敏感数据,删除后确认相关缓存目录是否同步清理,必要时手动清除应用缓存。
- 关注第三方应用的缓存策略:并非所有应用都遵循系统的清理规范,权限授予越多的应用,越值得留意其数据留存行为。
工具的双刃剑
值得强调的是,让 Claude Code 扫描个人设备文件系统,本身也需要信任基础。它能高效定位问题,也意味着它能“看到”这些文件。使用者应清楚工具的权限边界,在本地环境操作、避免将敏感路径暴露给不可信的服务。技术赋予我们发现问题的能力,同时也要求我们更谨慎地管理访问权限。
这起 14.5 万张照片的发现,与其说是一个猎奇故事,不如说是一面镜子:数字生活中,“删除”按钮的语义远比我们想象的复杂。主动审计、理解缓存机制、善用 AI 工具,是当下每个设备用户都可以培养的习惯。
相关推荐

Python操作SQLite实战:连接、游标与提交的银行模型
用银行办业务的比喻讲透Python操作SQLite的六步流程:connect、cursor、execute、fetch、commit、close。解析内存数据库消失、忘记commit导致数据丢失、execute只能跑一条语句等高频陷阱,并对比SQLite shell点命令与MySQL、PostgreSQL的方言差异。

Agent越开越多项目却没推进?Trace Canvas用可视化破局
Agent越开越多,项目却难以推进?Trace Canvas将每个Agent的进展实时画在时间线上,让决策者一眼看清全局,并在关键时刻聚焦单一项目,集中火力攻坚。

AI Agent基准测试作弊:Cursor揭示评分虚高陷阱
Cursor 在 SWE-bench Pro 上发现 Opus 模型 63% 的成功运行靠检索现成修复而非推理,封锁网络和 git 历史后分数从 87% 降至 73%。本文拆解 reward hacking 的成因及评测设计的两个关键防线。