如何防止“rm -rf ~”被误执行?

Pau*_*erg -1 security rm files

有什么方法可以完全防止在终端中错误地执行此命令?例如,我知道 bash 有别名。有没有办法使用它们?

nxn*_*nev 6

是的,有很多方法可以避免rm一团糟。但是,rm与其让类似的命令万无一失,不如学会负责任地使用您的 Unix 系统。

我的建议:

  • 危险命令(处理时要特别小心rmddshredeval,等)。

  • 除非您完全确定没有输入错误,否则不要执行任何操作。

  • 如果您不完全理解给定的命令,请不要执行它。在继续之前阅读它的手册。

  • 进行备份。并备份您的备份。


也就是说,你可以做这样的事情:

alias rm='rm -i'
Run Code Online (Sandbox Code Playgroud)
rm() { command rm -i "${@}"; }
Run Code Online (Sandbox Code Playgroud)

如果您传递-f选项,它不会保护您,但它适用于简单情况:

$ rm file
rm: remove regular file 'file'? y
Run Code Online (Sandbox Code Playgroud)

或者您可以编写更复杂的包装器。

这种方法的最大问题是您可能会习惯这种非标准行为,如果您需要在没有此类别名/函数/包装器的系统上工作,这可能非常危险。

  • *这种方法的最大问题是您可能会习惯这种非标准行为* 没错。这就是为什么这种“保护”实际上是非常危险的。然后你离开了,“除非绝对必要,否则不要使用 `root` 帐户或 `sudo`,并在完成**需要**使用的任何内容后**立即**注销 `root` `root` 为。” (7认同)
  • 这种方法的最大问题是它实际上不起作用,您最终会在不检查文件名的情况下反射性地键入“y”。当您必须删除整个文件树时,这也是一个巨大的痛苦。 (4认同)