rm -I 防止意外 rm

Sou*_*abh 5 rm coreutils

我只是alias rm="rm -I"为了防止意外rm命令而创建的。

-I     prompt  once before removing more than three files, or when removing recursively.
       Less intrusive than -i, while still giving protection against most mistakes
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我在使用时没有得到任何提示rm -rf

Oli*_*Oli 9

如果你再次阅读帮助你会看到它说的是previous --interactive。这意味着您可以-I在所有其他参数之后添加一个(例如在行尾),它会再次受到尊重!

要做到这一点,您需要一个函数而不是别名,但只需将其粘贴在您的.bashrc(et al) 中的某个位置,您就大功告成了:

function rm { /bin/rm "$@" -I; }
Run Code Online (Sandbox Code Playgroud)

一种可能比使用trash-cli'strash-put命令更安全的方法。它将把东西放在你帐户的垃圾目录中,可以正常查看/恢复/清空。它还具有 dummy -r, -fand,-i参数,因此它可以实现完美的别名:

alias rm="trash-put"
Run Code Online (Sandbox Code Playgroud)

  • 只要这些参数之一不是`--`... (4认同)
  • 听起来很公平,但最好不要使用 `-rf` ;) (2认同)

Bra*_*iam 6

这里的问题是-fmakerm忽略任何交互式命令:

`-f'
`--force'
   Ignore nonexistent files and missing operands, and never prompt
   the user.  Ignore any previous `--interactive' (`-i') option.
Run Code Online (Sandbox Code Playgroud)

来源: info coreutils 'rm invocation'

  • @Sourabh 只是不要输入它... (7认同)
  • 这已经在其他线程上被殴打致死,但仍然值得一提。创建别名或脚本来修改常用命令的行为并不是一个好主意。1) 如果你习惯了新的行为,然后使用另一个系统,它不会像你期望的那样工作。2) 如果其他人曾经使用过您的系统(例如帮助您解决问题),那么这些命令将不会按他们的预期工作。拥有别名和自定义脚本是很好的,这就是 Linux。只是不要将它们命名为与预先存在的命令相同的名称。 (2认同)