どのようにしてsudoのコマンドをエイリアスできますか?


5

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

alias rm=trash

これは普通のユーザーとしては問題なく動作します。 sudo -i rootシェルプロンプトを表示するには sudo rmエイリアスは適用されません。それで、それが一回限りのsudoコマンドで働くように私の別名をどこに置く必要がありますか?


1
OS Xを使っているかどうかは指定しませんが、そうであればosx-trashコマンドを調べてください。非常に便利: dribin.org/dave/osx-trash しかし他の人が言っているように、rmを別名にしないでください。代わりに「ゴミ」と入力する習慣を付けてください。

回答:


10

末尾にスペースを入れてsudoのエイリアスを作成します。

alias sudo='sudo '

それから他のすべてのエイリアスはsudoで動作します。

しかし他の答えで述べたように、エイリアシング rm 実行する trash おそらく悪い考えです。 私がしたいのは "無効"です rm このような:

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

これであなたはすぐにタイピングの習慣に入るでしょう trash の代わりに rm


1

これではうまくいきませんが、関数を使ってエクスポートすればうまくいきます。

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

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


それはbashとzshのどちらともうまくいかないようです。
Ryan Thompson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.