AI 代理一条命令把桌面和移动硬盘里的项目删空了,Windows 上还能怎么找回?

让代理改一个插件,它真正需要碰的通常只有插件那一个目录。可启动代理时终端停在哪里,很多人不太在意。终端停在用户主目录或者盘根的话,代理能看见、能删的范围就成了整个桌面,再加上插在电脑上的移动硬盘。递归删除的路径只要写偏一级,结果就可能是「项目全没了」。这篇先讲删了以后去哪找,再讲以后怎么防,都不针对某一家工具。

已经删了

  • 马上停止往出事的那块盘上写东西:别继续让代理跑,别往移动硬盘里拷新文件,要装什么软件也装到别的盘上。被删文件原来占的地方已经被标成空闲,新数据写进去,原来的内容就可能被盖掉。
  • 去回收站看一眼。不少人说 cmd 里的 rmdir /s /q(/s 删整个目录树,/q 不提示确认)、PowerShell 里的 Remove-Item -Recurse -Force 删掉的东西不进回收站。我对照了微软 Learn 上 rmdir(rd 是同一个命令)和 Remove-Item 的文档。两页都没提回收站,这个说法我没法证实。回收站里有就直接还原,没有也别太意外。
  • 之前开过文件历史记录的,到原来那个文件夹上右键,选「还原以前的版本」,挑一个删除之前的版本。被删的是盘根下的文件夹,就对着驱动器本身右键。微软的说明里提到,还原会替换当前版本,而且撤销不了。不想覆盖的话,可以展开「还原」选「还原到」,把文件放到别的位置。
  • 项目放在网盘同步目录里的,去网盘网页端的回收站找找。
  • 翻一下代理自己的会话记录。代理跑过哪些命令、删的是哪个路径,记录里一般都能看到。这些记录可以用来确认损失范围,也能看出是不是只删了一部分。
  • 代码项目还有一条退路:推送过远端仓库的,重新 clone 就能拿回提交过的部分,没提交的只能指望上面几条。

恢复软件这里不推荐具体哪一款。真要用,装到别的盘,恢复出来的文件也存到别的盘。

以后怎么防

  • 工作目录只开到项目文件夹,就在那个目录里启动代理,别在用户目录或盘根上开。移动硬盘不用的时候拔掉。
  • 删除、递归删除这类命令设成每次都要人点确认。多数代理工具都有命令审批或白名单设置,叫法各家不同,去翻自己那家的文档。站里之前讨论过在规则文件里写「不许动」为什么拦不住,还有怎么不让代理读到敏感文件,可以对照着看。
  • 有条件就让代理跑在一次性的环境里。Windows 沙盒是系统自带的一次性虚拟机,关掉时里面的软件、文件和状态全部删除,下次打开又是一份干净的系统。微软文档列出的支持版本是 Pro、Enterprise、Pro Education/SE 和 Education,家庭版不支持。同一时间只能开一个实例。网络默认是通的,可以用配置文件关掉。把宿主机的文件夹映射进去时,文档建议对不信任的内容用只读映射。要是映射成可写,沙盒里删掉的就是宿主机上的真文件,这一点自己先测清楚。
  • 重要目录提前开文件历史记录。文件历史记录会自动备份库里的文件夹,文档、图片、视频、桌面这些默认都在,别处的文件夹可以加进库里一起备份。备份目标得是外接硬盘或者网络位置。项目所在的盘和备份盘最好分开。

大家给代理配的是哪种隔离,虚拟机、沙盒,还是单独开一个系统账户?