我有一个别名,我想通过 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
它会删除一堆很难恢复的东西。