可恶的的换行符

Claude 太好用了,Mac也是。它俩结合简直完美!

在今天这件事出现之前,我还是这么想的。

今天看到Claude说,有一行命令它自己执行不了,需要我自己去终端里执行下:

npm run build && rsync -avz --delete dist/ root@.../dist/ & rsync -ayz --delete api/root@47.116.111.153:/my-blog-api/ --exclude node_modules --exclude .env

我也没多想啊,然后就扔mac终端里运行了。

但是感觉这次就怪怪的,显示了好几行Deleting开头的日志,最后报了个zsh的错。

感觉有点不太对劲,打开项目文件,看到了恐怖的一幕。

主要的项目文件基本全无了。

顿时头大不说,还百思不得其解,莫非Claude把我坑了?

我转过去质疑它,但我又核对了一遍命令,没问题啊。

于是我把日志发给了它。

…于是就出现了令人非常无语的一幕。

Claude说命令被换行符截断了,第一行命令被执行了,第二行命令没被执行。

第一行:

npm run build && rsync -avz --delete dist/ root@.../dist/ & rsync -ayz --delete api/

第二行:

root@47.116.111.153:/my-blog-api/ --exclude node_modules --exclude .env

我相信你看到第一行末尾那个delete也是心里一惊。

然而自信的我没有加备份,没有git,没有开磁盘回复。

就这样绝望地看着屏幕…

解决方案有三:

  1. 磁盘恢复,在海量垃圾里找回有用的
  2. 根据服务器上的网页,逆向回来
  3. 打几把原神

权衡时间和成本,最终选择了第二个方案,把我的博客救了回来。

不过话说回来,这种情况是真没法防啊!谁会想到复制的命令里有换行符?而且新旧终端的大小一样,复制进去也看不出来…

所以还是要做好备份,总有第二关在等你。

评论

支持 Markdown 与 LaTeX($形式)。