导航

Antigravity 删除 D盘问题分析

Posted on 2025-12-02 15:47  蝈蝈俊  阅读(0)  评论(0)    收藏  举报

reddit有人发帖 Antigravity 删除了他的D盘。

https://old.reddit.com/r/google_antigravity/comments/1p82or6/google_antigravity_just_deleted_the_contents_of/

翻译如下图:

x上多人分析的原因如下:

问题出现的场景是:

Windows(powershell) + Antigravity + Gemini 3

当时程序运行完了,正在清理临时目录

powershell -Command 'cmd /c "rmdir ..."'

类似这样的

powershell -Command 'cmd /c "rmdir "C:\My Files""'

他的目录里有空格,Gemini传的时候以引号括住,结果到PowerShell转成空格。

用echo测试下这样的命令,可以看到 PowerShell 有这样的问题:

PowerShell 的 -Command 解析器 不只是简单地把字符串传给系统,它会先尝试解析(Parse)这个字符串,即重建命令行字符串。

当它把参数传给 cmd.exe 时,它不会原封不动地传递原始的 Raw String,而是把解析后的参数用空格拼起来。在这个“解析-再拼接”的过程中,原本用来保护空格的引号被丢弃了。

让Powershell去执行命令是个需要非常谨慎的做法,Powershell 有些命令太猛。

还有一个原因:Gemini莫明奇妙传递了 /s /q ,所以第一个盘符根目录也被删了,而不是access deny

估计是因为:为了方便,开启了“Turbo Mode”(自动运行)模式。

PowerShellrmdir /s /q 参数相当危险

跑到工作目录外删除,虽然有下面配置,但是如果用的Admin账户运行,上面这个原因,也难以防住。

总结

直接原因:

  • 目录有空格,Gemini传的时候以引号括住,结果到PowerShell转成空格,这样rmdir d:\"temp files"变成了 rmdir d:\ temp Files, PowerShell是当成了3个目录一起rm

  • 本来删除是需要确认的,然而Antigravity 默认为“Turbo Mode”(自动运行)模式, 所以在收到rmdir不成功message后自行加入了/q 删除不用确认。

给用户的启示:

在使用任何具备 Shell 执行权限的 AI 代理(如 Antigravity, Curser 等)时,必须使用 Docker 容器或虚拟机进行物理隔离。

永远不要让 AI 直接裸奔在你的宿主系统上。

还是弄个Docker,把workspace目录映射到docker容器里面,专门用于AI Coding。