Sudoを介して、通常のユーザーとrootの両方として使用したいエイリアスがあります。具体的には、これです:
alias rm=trash
これは通常のユーザーとしては正常に機能し、Sudo -i
を使用してルートシェルプロンプトを取得すると正常に機能しますが、Sudo rm
を使用すると、エイリアスは適用されません。では、1回限りのSudoコマンドで機能するように、エイリアスをどこに配置する必要がありますか?
最後にスペースを入れてSudoのエイリアスを作成します。
alias Sudo='Sudo '
その後、他のすべてのエイリアスはSudoで機能します。
しかし、他の回答で述べたように、rm
を実行するためにtrash
をエイリアスすることはおそらく悪い考えです。私がやりたいのは、次のようにrm
を「無効にする」ことです。
alias rm='echo "rm is disabled, use trash or /bin/rm instead."'
これにより、すぐにtrash
の代わりにrm
と入力する習慣が身に付きます。
それは機能しませんが、関数を使用してエクスポートすると機能します。
dl () { trash "$@"; }
export -f dl
rm
をエイリアスするのは悪い考えです。なぜなら、あなたを保護するエイリアスまたは関数の習慣を身につけ、ある時点で何らかの理由でエイリアスが利用できなくなった場合、rm
を使用するからです取り戻すのが難しいものの束を削除します。