刚刚看到了这个帖子 就在刚刚,rm -rf 删软连接的时候后面多加了个 /,现在杯具了 ,又想起了我在 你们平时用 Linux 时喜欢用 root 用户吗 里回复的
我大 root 敢死队什么时候怕过?
结合最近发生的一件事情说一下:
某些发行版的 rm 是默认--preserve-root 的,所以rm -rf /
并没有什么卵效果。当然我不确定指定了多个路径的情况。我用过的发行版不多,作死也不多,这一条如果有知道的更多的,欢迎指正。
然后,在讨论rm
这个问题的时候,总有人会说alias rm to mv
。我想说,其实这样并不能挡住误操作。
这里举一个就前不久在我这里发生的真实例子:
(背景:高校非计算机科学相关专业的科研机群)
在一台节点机上,给新人“练手”:用 root 编译安装一个软件。新人打算备份一下某些数据,但是误操作mv /* bak/
(通配符前多打了一个斜杠)新人还真“新”,没搞懂乍回事儿,觉得怎么突然这么慢,也没按 Ctrl
+C。等了好久才反应过来,叫来前辈看情况。
此时,各种 bin 已经都被移走了,所有命令都是各种command not found
,然后新人居然一个 Ctrl+D 退掉了 SSH——当时那台机器最后一个 SSH 连接。
最后,迫于那台机器上没啥值得抢救的数据,直接重装了,省事儿。
可以看到,rm
是有一些重要路径的保护措施的,而mv
没有。而总所周知mv
是不会丢失数据内容,而rm
是可能导致数据丢失的(数据恢复不是 100%保证成功)。
起一个别名并不能解决问题。
然而,删掉了系统,真的有那么可怕吗?我觉得不是,重装系统太简单了。
真正可怕的是删掉、系统上产生的还有价值的数据、删掉部署在系统之上的技术栈、以及机器掉线带来的其他负面影响。
并没有系统命令可以帮你保护这些内容。
那我们能做什么呢?老生常谈了:
在敲下回车之前,留个心,多看一眼,仔细一点。
勤备份:不仅仅是备份数据,还有软件架构的冗余、人员的冗余等等。
最后,感谢大家深夜听我逼逼这么多。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.