如何限制“rm”命令?

如何限制“rm”命令?

我有一个非常糟糕的 ing file 历史,rm然后后悔了。从那时起,我创建了一个trash我尝试使用更多的命令。

然而,我仍然有很多肌肉记忆rm。有什么办法可以阻止该rm命令吗?也许强迫它给我一个确认或者只是让它无法使用?

答案1

通常一个好的策略,特别是对于具有管理员权限的用户,是将 rm 命令别名为 rm -i,这需要确认。

将其放在您的 .bashrc 中

alias rm='rm -i'

答案2

提示rm确认(如鲁伊·F·里贝罗的回答)会让你养成依赖它的习惯。然后,如果您登录到不同的系统,您将会遇到不受欢迎的惊喜。

相反,我建议重新培训自己——我想到了两种方法:

您建议的一是让其rm不起作用。这相当简单alias rm=~/bin/dont-use-rm(然后,可以选择创建带有 echo 提醒您的脚本和exit 1)。

二是训练自己经常打字rm -i。你可以自己制作:再次alias rm=~/bin/force-rm-i,并将其作为一个 shell 脚本,如下所示:

#!/bin/sh

if [ '-i' != "$1" ]; then
    # you could use getopt, etc. for better command-line parsing, but that
    # is much more work.
    echo -e "\aIgnoring your command because you forgot to use 'rm -i'."
    exit 1
else
    exec rm "$@"
fi

(注意:并非所有 shell 都支持“echo -e”;如果您不支持,请随意使用/bin/bashtop 。)/bin/sh

为此使用别名,因为您可以轻松地将它们设置为仅影响交互式 shell — 您不想在 shell 脚本中破坏“rm”。

相关内容