🎯 史上最贵的道歉,希望不会发生在你的身上!
AI Coding 或 AI Work 方面,大家都听说过一个被 AI 清空本地磁盘或者删除重要文件夹/文件的事件了。起初我也意识到了,也做了一些预防,可惜,没防住!也怪我没有把这件事情提升到一定的高度,用了四年的 AI,也算资深用户了,以为这种事情不会发生在自己身上,就没做过多预防。
结果,2026.09.18 10:10:00 它发生了,我收到了史上最贵的道歉......

1、事故背景
-
我的电脑 macbook m1,不熟悉 mac 的 windows 小伙伴把目录当成 win 的 D 盘来理解即可。
-
由于公司资料的敏感,个别处马赛克了或者换了个{工作目录代指}名字来表达,不影响对这件事情的理解。
我在进行 AI Coding 的过程中,9 月 18 日 10:10 分,AI 突然终止了任务,给我了一个事故报告(如下图),告诉我它删除了我的工作目录/Users/javastarboy/work/{工作目录代指}并且无法恢复!
-
这个工作目录是我日常工作的核心
根目录,所有与工作相关的内容都在此目录下做了分类管理,有的目录已做了Git仓库关联。但是更多文件都仅存在于本地!因为由于公司以及客户资料的敏感性,不允许上传网络,这包括云盘、互联网Git仓库、iCloud等。而我又有很久没有做过离线硬盘备份,导致这些资料都没了,硬盘恢复也无法解决(后文解释)。 -
到了这里,我才意识到,当初笑话网上那些被 AI 清空本地 D 盘资料这件事是多么的可笑...,如今我也收到了这份
史上最贵的道歉!也意识到了,永远不要对自己过度自信,AI 安全不可忽视!

数据找不回来,有一个关键的点,后文看 2.1.5.2 章节了解。
2、数据恢复与补救
遇到这种问题,首先慌肯定是不行的,你一定要先冷静下来,停止所有工作,立刻想补救措施。
-
首先就是数据恢复:如有没有开启过备份机制、或者找一些数据恢复软件、第三方机构做磁盘数据恢复
-
如果前面这条路也不通,就得根据你自己电脑的使用习惯,想其他办法(后文我会提我的办法)
如果你是 windows 用户,成功概率较大,直接去专门做数据恢复的维修点付费恢复最靠谱,2.1 章节也可参考!
如果你是 macOS 用户,直接看 2.1 章节吧。
2.1 数据恢复
首先,上网找了一些关于 macbook 数据恢复的一些可行办法,大致为时间机器、iCloud、Disk Drill数据恢复软件、云盘、Git仓库等。(当然,这些路,我的情况都被堵死了)
犟眼子不要提废纸篓/回收站恢复哈,如果这么简单,就没有这篇文章了,具体可以看 2.1.5.2 章节了解原因。
2.1.1 时间机器
时间机器时苹果电脑自带的一款数据备份软件(机制),它会备份你的电脑并保留过去24小时的本地快照和每小时备份、过去一个月的每日备份以及过去所有月份的每周备份。最早的备份和任何本地快照会在可用空间不足时删除。所以,如果你开启过时间机器,那么你就欢呼、庆幸吧,这是成功率最高的一个恢复办法(关于 windows 应该也有类似的机制)!
我的情况:由于我磁盘内存限制,没开启过时间机器 😭 此路不通~~~

2.1.2 iCloud 云盘
iCloud 是苹果自带的云盘,它会自动备份你电脑上的数据,但同样,前提是你开启过 iCloud 备份,并且你丢失的数据恰在在你设置的备份范围内。
我的情况:由于 iCloud 免费额度只有 5G,升级到6元/月也只有 50G,远不足日常使用(就连手机照片都存不下,更高的套餐也更贵),所以我也没有开启,此路不通~~~

2.1.3 其他云盘
类似 iCloud 一样,比如百度网盘也有同步空间或文件夹备份的功能,我也是 SVIP,但是由于前面说的由于公司敏感信息不允许上传互联网,网盘也的确有安全问题存在,所以我前阶段也关停了此功能,此路也不通。
如果你的数据不是这种国央企、公司机密的不允许上传互联网的数据,完全可以使用百度网盘这两个功能:
- 同步空间:
它的机制是确保你本地与网盘上所关联的目录文件时刻保持一致,双向更新同步机制;
- 文件夹备份:
纯纯的是一个硬备份,即只上传你本地的新文件到网盘上,它不会判断是否为同一文件做更新。
2.1.4 Git 仓库
当然,如果我关联了 Git 仓库,也就不需要前面三个步骤了,肯定是没有关联 Git 才会想如何恢复数据。
作为一个软件公司的技术人员,为什么我没关联 Git?
因为一方面有一些文件同样涉及不方便所有同事都看到的,也有一些文件太大了不方便Git 托管等等原因。
其实也很正常,不可能每个人的个人电脑数据都要用公司 Git 托管,也不现实。
如果你个人有一个自己的 Nass 那就解决这个问题了,可惜,不是每个人都有私有 Nass。
所以,此路不通。
2.1.5 数据恢复软件,如 Disk Drill
至此,剩下最后一个物理大招了,从磁盘角度做数据恢复~
办法有二:一是自己基于数据恢复软件如 Disk Drill 进行数据恢复,还有一种就是找专业维修人员处理。
-
对于 windows 用户,建议直接找专业人员处理,大概率可行。
-
对于 macOS 用户,用 Disk Drill 来自己处理即可,如果这都不行,就不用出去花钱找人了。
2.1.5.1 Disk Drill 基本介绍与提醒
⚠️ 重要提醒
对于需要基于磁盘恢复数据的办法,在你出现问题后,禁止再次对磁盘进行写入数据,因为你写的越多,恢复成功率越低,磁盘扇区会被覆盖,到时候就真的没有办法恢复了。
这个写操作,不仅是 write,也报过 read,比如用 Disk Drill 扫描或者查看文件也会涉及写操作!
所以,当你出现数据丢失问题后,应该立刻关闭所有软件,包括微信,然后做好准备,仅作一次扫描。如果第一次扫描失败了,那么第二次大概率不会成功了。
这里提示一下,Disk Drill 对于苹果芯片系列支持扩展内核扫描,所以你提前去官网了解一下再来操作。扫描时直接基于 Macintosh HD / Data 进行扫描。期间不要重复扫描。磁盘内存越大,时间越长,我的硬盘是 1T 的,扫描用了 5 个小时。关于费用,扫描是免费的,扫描后,你可以预览一下,如果能预览就是能恢复,这时才需要根据恢复难度是否花钱,如果需要花钱,官方是 $140,小 1000 块钱,你可以去某鱼买个激活码,才几十块钱。其实我当时都做好在官方买的准备了,毕竟数据无价,可惜我丢失的数据没有扫出来,稍后解释。
官网地址:https://www.cleverfiles.com/
如下图所示是操作界面,这里我不是宣传 ,也不做这个教程,大家可以自行去网上找操作步骤。


2.1.5.2 为什么我的数据无法从磁盘恢复?
5 个小时,我用 Disk Drill 扫完磁盘后,并没有找到我丢失的文件目录的数据,问了一些 mac 圈专业人士也表达找不回来了(Disk Drill 都找不到,就放弃吧)。其原因我们要了解一下 macOS 的删除机制:
- 废纸篓/回收站
-
-
我们在文件上基于
鼠标右键或者执行删除动作,文件会先到废纸篓中。废纸篓如果没有清除的情况下,是可以一键恢复的。 -
问题在于,废纸篓也清掉了呢,这时就是黄金时刻,有概率可以基于Disk Drill恢复,前提是不能进行磁盘读写,扇区覆盖,并且抢救及时,即 OS GC 尚未回收。
-
rm -rf
-
-
我遇到问题的核心场景在于,AI 是基于
rm -rf机制删除文件的,这个操作跳过了废纸篓环节,它相当于你清理了废纸篓一样,数据索引已经不在,只能趁磁盘扇区还没有写入新数据前的黄金时刻进行数据恢复。
-
🎯 关于 macOS 磁盘机制解读
右键「移到废纸篓」只是移动文件到~/.Trash,元数据还保留;一旦【清空废纸篓】才会解除目录引用 + 发送 TRIM。而 rm -rf 是直接删除 inode 目录条目,完全跳过废纸篓,没有中间缓冲阶段。
但!M1 APFS SSD,两种方式最终都会触发 SSD TRIM,只是时机不一样。
一、右键删除(移到废纸篓)
-
阶段 1(没清空废纸篓) 文件只是移动到废纸篓目录,原始目录记录还在,文件完整保留,随时可以放回原位置。 👉 Disk Drill Quick Scan 可以直接找到这个文件夹。
-
阶段 2(清空废纸篓) APFS 删除目录 inode,标记空间空闲,发送 TRIM 指令给 SSD。
-
原文件夹目录条目消失;
- M1 内置 SSD 后台垃圾回收,慢慢擦除数据块(抢救时机就在这里)。
二、rm -rf 文件夹
没有废纸篓中转,一步到位:直接删除目录 inode,解除文件系统引用
-
不会在
~/.Trash留下副本; -
执行完的瞬间,这个文件夹的目录记录就从文件系统移除;
- APFS
同样标记块空闲,同样下发 TRIM;
-f= force,跳过权限提示、不存在文件报错;
-r递归删除文件夹 + 内部全部内容。
⚠️ 重点:
不管是【清空废纸篓】还是【rm -rf】,最终底层都是:inode 目录条目被释放,SSD 收到 TRIM。 所以:
-
如果你是rm -rf 删掉文件夹:从删除那一刻,Quick Scan 就找不到这个文件夹了;
-
如果你是右键丢废纸篓、但没清空,并且还没有触发操作系统 GC 机制也没有重复写入新数据时:Quick Scan 还有机会看到;一旦清空废纸篓或执行了
rm -rf就看你的黄金时刻了。
我的情况:Disk Drill 一点都没找回,应该与我的磁盘空间不足以及电脑软件太多频繁写盘有关!
到此为止,所有能想到的办法都试过了,此时距离事故发生已经过去了 5 个小时,已经放弃数据恢复这条路,开始人工想办法解决了。
2.2 补救措施
数据恢复行不通,我们只能自己想办法补救了,当然没有 100% 的补救办法,我下面基于我的情况来介绍一下我的方法,希望对你有帮助,第三章也会补充一下后续的预防机制。
2.2.1 补救找回数据,分为三种情况:
当然,前提都是基于 2.1 章节说的这些办法都解决不了的时候
- 有 Git 仓库的子目录:
这种最简单,直接从 Git 重新 clone 即可;
- 无 Git 仓库的子目录
-
- word、xlsx、ppt
-
-
- 这类办公文件,从微信、钉钉、企微等办公软件中找最新版重新下载
- WPS 如果你是会员并开启了云同步,也可以从云盘下载
-
-
- 前后端代码
-
-
- 这才是关键,也是我的失误,我三周前从 0 开始开发了一个新系统,前后端分离的微服务应用。当时想着等基座开发完再传 Git,所以就先临时本地
git init,暂时没有传远端。后来就忘记这茬了(岁数大嘞,记性不好!!!!!!!),而这些代码我也没发给过别人,也没上传过网盘... - 那么我的代码如何恢复?! 这可是我三周的成果呀,还花了不少 token !
- 这才是关键,也是我的失误,我三周前从 0 开始开发了一个新系统,前后端分离的微服务应用。当时想着等基座开发完再传 Git,所以就先临时本地
-
2.2.2 代码“硬”找回(必看)
2.2.2.1 找回方式
走到了这一步,你的代码 1:1 还原肯定是不可能了,现在就看能找回多少算多少,总比从 0 开始干要强。
本文前提已经提到,事故发生的背景是AI Coding,既然是 AI Coding,那么本地就有从最开始与 AI 的所有聊天记录(术语叫转录记录)。它们都会在你本地的某个文件夹下,大多数以 jsonl或者.sqlite或者.db等各种格式存在。你不需要翻阅它,甚至你可以让 AI 告诉你这个目录在哪。然后让 AI 帮你基于聊天记录轨迹进行代码恢复即可。因为这个事情除了 AI 人也没法干!
当然还有 IDEA、Trae(VS Code )等 IDE 的缓存也是找回途径之一,但是由于我的情况是整个文件夹被删了,所以缓存也没了。

-
如下是 AI 基于对话记录找回代码的分析结果
-
-
过程不赘述了,总之,接下来你只能寄托希望于 AI ,找回多少算多少。
-

2.2.2.2 找回结论
说一下结论,最终,非代码部分我从微信、钉钉等基本都找回来了。代码部分我用 AI 帮我找回了约 2/3,找不回来的部分我分析原因为:
-
-
历史对话做过
/compact压缩和/clear清理。 -
我用 AI 基于对话记录恢复代码这个节点,没有做历史对话备份,导致一边恢复一边覆盖对话记录,也造成了影响(操之过急了),这个经验也希望你不要踩坑。
-
⚠️ 切记
-
当恢复达到极限时(6 成左右),不要再寄希望于进一步恢复了,这是做不到的,立刻收手,然后重建你的工作空间,把恢复出来的代码迁移到新的工作空间下,后面就是全新的开始了。不要贪大,恢复回来多少算多少。
2.2.2.3 费用与耗时
最终,AI 恢复代码这个时间我用了两天一夜,恢复代码约 67%。费用 ¥820.00。
AI token 成本:
-
- GLM-5.3-Flash 团队版:6亿token
,约
¥500元(如果不是团队版会更贵) - Claude-Opue-5:3亿token
$1400(我用的高性价比中转站并且用了最贵分组确保质量,约
¥320) - 总费用:820 元人民币
(有的小伙伴可能觉得贵,但是真的已经不算贵了, 能找回 60%,比你重新开发投入的成本算,截止太合算了)。
- GLM-5.3-Flash 团队版:6亿token


3、预防措施
说了这么多,踩过坑了,后面怎么预防呢?
同样分为种情况:AI Coding 安全控制和备份机制。
3.1 AI Coding 防护
-
权限控制:现在的 AI Agent 工具,如 Codex、Claude Code、WorkBuddy、Qoder 等都有权限控制,尽量
避免开启完全访问权限,这存在巨大风险! -
日常使用 AI Agent 工具进行
AI Coding或者AI work时,可以把如下三条命令配置到全局规则当中,这是我在事故之后,手动加上的规则,实测有很好的效果。也欢迎分享给更多的人。
在个性化指令中追加如下三个全局规则,或者把这句话加到全局 Agent.md 中:
- 禁止删除任何文件夹,禁止使用 `rm -rf`命令删除任何文件,如需删除文件,请列出删除命令清单提醒我检查后手工删除。- 禁止 `git push` 代码,你可以准备 git commit message 给我,但不允许提交甚至推送我的代码,此步骤必须人为处理。- 如果有数据结构和数据字典的调整,不允许直接操作我的数据库,你需要把脚本给我,让我手动执行。脚本要符合命名规范,以便于区分时间顺序,如:{系统标识符}_ddl_patch_{yyyymmdd}_{两位序号} 和{系统标识符}_dict_patch_{yyyymmdd}_{两位序号}
下面分别针对每一款 AI 软件添加这三条规则的方式之后截图说明:
3.1.1 Codex 中

3.1.2 Claude Code 中
-
桌面版 Claude

-
全局
~/.claude/settings.json中追加deny,官方推荐
3.1.3 Deepseek Harness 中
在~/.dsh/下新建 Agent.md,追加前面三条全局规则
3.1.4 在 trae、qoder、cursor、vscode 等 IDE 中
在 设置 > 用户级规则下追加三条规则
- Trae
下配置这三条规则

- Qoder
下配置这三条规则

🤝 其他软件都是类似原理,不再赘述了。有需要帮助的小伙伴,欢迎骚扰~
3.2 备份机制
- Git仓库:
能创建远程 Git 仓库管理的,尽快创建,不要偷懒,切忌
弄完 xxx 再说的侥幸心理。 - 云盘备份:
不是特别敏感的数据,可以利用网盘的自动备份功能进行备份
- 定期离线备份:
没有前两者的时候,只能定期拷贝到自己的备份硬盘中了。注意,本地 git 仓库是没用的,一旦
.git被删了,也是找不到的。
🎯 最后,希望大家永远不要遇到这个问题,也不要有侥幸心理,我就是因为侥幸心理和过度的自信才导致遇到了这个问题。 如果哪个小伙伴有更好的经验,欢迎分享、交流。
🎯 往期推荐👇

1528

被折叠的 条评论
为什么被折叠?



