小叙

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

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

经历

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

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

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

mv "aa/*" .

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

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

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

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

回过神来,我把命令改成

mv aa/* .

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

我再次把代码改成

mv "aa/"* .

同样测试通过……


结语

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

我的环境 --- CentOS7.9

「 希望熬过一切,星光璀璨 」

流年小站,感谢有您的支持

「 道路坎坷,感谢有您 ---来自 anYun 的感谢 」

使用微信扫描二维码完成支付

2022-09-03
已阅:7439 人/次

 
 
 
分享是一种美德 x
打开微信,右上角的"+"选择"扫一扫"
使用“扫一扫”将博文分享至朋友圈吧

本文由 anYun 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论

Myssl安全认证