小记一次我是怎样把虚拟机玩坏的

2023-06-15 15:18:49 浏览数 (1)

小叙

我知道 rm -rf / 是不可取的,因为我测试过 但我却遇到了一次类似的经历 整个虚拟机直接挂了

怎么挂的?就是你敲所有的命令都变成 not found

经历

我当时脚本在 dirA (假设) dirA 中有个一个 aa.tar.gz 的压缩包和一个 run.sh 脚本

当我运行 run.sh 时,会去解压 aa.tar.gz 这个文件,但它解压出来在下级目录 aa 我的脚本用到这个解压出来的目录里面的内容,可脚本一开始引用的是当前目录,所有就造成文件、目录找不到 (这个原因主要在我,我在重新打包的 aa.tar.gz 时没考虑这个问题)

但想到一个弥补办法,那就是在解压 aa.tar.gz 这个文件后,把里面的目录移除出来……然后悲催的事情就发生了 我的命令:

代码语言:javascript复制
mv "aa/*" .

结果一运行脚本,就报错 aa/* 目录或文件找不到

我很纳闷,怎会这样?百思不得其解…… 当我在敲其他命令,比如 lspwd 等都报错了

此时我才发现问题大了………………

当时开着虚拟机,还开着生产环境……当时脑袋一下就翁了 感觉确认我现在操作的是生产环境还是虚拟机,很庆幸,我操作的是虚拟机

回过神来,我把命令改成

代码语言:javascript复制
mv aa/* .

测试效果是OK的,达到预期

我再次把代码改成

代码语言:javascript复制
mv "aa/"* .

同样测试通过……


结语

顿悟 原来,* 在引号里面会被当成字符串处理

我的环境 --- CentOS7.9

0 人点赞