如何為 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它會刪除一堆難以恢復的內容。

相關內容