web-dev-qa-db-ja.com

sudoのコマンドをエイリアスするにはどうすればよいですか?

Sudoを介して、通常のユーザーとrootの両方として使用したいエイリアスがあります。具体的には、これです:

alias rm=trash

これは通常のユーザーとしては正常に機能し、Sudo -iを使用してルートシェルプロンプトを取得すると正常に機能しますが、Sudo rmを使用すると、エイリアスは適用されません。では、1回限りのSudoコマンドで機能するように、エイリアスをどこに配置する必要がありますか?

5

最後にスペースを入れてSudoのエイリアスを作成します。

alias Sudo='Sudo '

その後、他のすべてのエイリアスはSudoで機能します。

しかし、他の回答で述べたように、rmを実行するためにtrashをエイリアスすることはおそらく悪い考えです。私がやりたいのは、次のようにrmを「無効にする」ことです。

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

これにより、すぐにtrashの代わりにrmと入力する習慣が身に付きます。

10
Dario Seidl

それは機能しませんが、関数を使用してエクスポートすると機能します。

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

rmをエイリアスするのは悪い考えです。なぜなら、あなたを保護するエイリアスまたは関数の習慣を身につけ、ある時点で何らかの理由でエイリアスが利用できなくなった場合、rmを使用するからです取り戻すのが難しいものの束を削除します。