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

翻译如下图:

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”(自动运行)模式。

在PowerShell的rmdir /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。
浙公网安备 33010602011771号