如何为 sudo 创建命令别名?

如何为 sudo 创建命令别名?

我有一个别名,我想通过 sudo 以普通用户和 root 用户身份使用它。具体来说,它是这样的:

alias rm=trash

对于普通用户来说,这很好用,当我使用sudo -i获取 root shell 提示时,它也很好用,但如果我使用sudo rm,别名则不适用。那么我需要将别名放在哪里,以便它在一次性 sudo 命令中起作用?

答案1

为 sudo 创建一个别名,末尾带空格:

alias sudo='sudo '

然后所有其他别名将与 sudo 一起使用。

但就像另一个答案中提到的那样,将别名设置rm为执行可能不是一个好主意。我喜欢这样trash做:rm

alias rm='echo "rm is disabled, use trash or /bin/rm instead."'

trash这样,您很快就会养成键入而不是的习惯rm

答案2

那是行不通的,但如果你使用一个函数并将其导出,它就会起作用。

dl () { trash "$@"; }
export -f dl

使用别名不是一个好主意rm,因为如果您习惯于使用别名或函数保护您,而某个时候由于某种原因别名不可用,那么您使用时rm它会删除一堆很难恢复的东西。

相关内容