为了账号安全,请及时绑定邮箱和手机立即绑定

在线等!一次惨痛的教训后,向各位shell高手求一个Linux mv命令的同名拦截函数感激不尽

在线等!一次惨痛的教训后,向各位shell高手求一个Linux mv命令的同名拦截函数感激不尽

米琪卡哇伊 2019-09-05 20:07:54
环境:操作系统:CentOS7.6;shell:zsh5.0.2晚上搬砖到凌晨2点多时,一时糊涂,竟然莫名其妙地在shell命令行中敲下了如下让我后悔莫及的命令:mv/*/www/wwwroot从而将系统根目录下面的/bin、/etc、/sbin、/usr、/var、/root、/home等目录移动到了/www/wwwroot目录下,于是导致很多命令都无法正常执行。整个人都懵了的情况之下,手忙脚乱中又关闭了连线中的shell终端会话窗口,于是再也连不上服务器了。由于根本连不上服务器,之后找云服务商帮忙也表示爱莫能助,只能重装系统。这次教训过于惨痛,痛定思痛之余,为了以后避免类似事件,想编写一个拦截mv命令的同名函数,当发现mv后面输入的是/*或/bin、/etc、/sbin、/usr、/var、/root、/home时,echo一个警告信息出来,然后退出执行。但我发现在条件表达式中无法匹配到参数“/*”中的星号*,因为星号*在作为参数输入之前已被展开,因此实际上输入的参数是星号*展开后的值。由于在下水平有限,这里请教一下各位shell高手,能否根据上述要求,编写一个拦截mv命令的同名函数。诚挚感谢!
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

你需要的不是一个安全的mv,而是一个健壮的备份恢复系统即使你现在实现了一个安全的mv,那还有安全的rm和安全的cp甚至安全的vim,事实上,即使你有一个百分百安全的操作系统,云服务商也有可能会丢掉你的数据。所以异地备份+一个快速部署恢复,才是比较可靠的选择
                            
查看完整回答
反对 回复 2019-09-05
  • 2 回答
  • 0 关注
  • 322 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信