Bashで「cd ..」を使用しないようにしますか?

Bashで「cd ..」を使用しないようにしますか?

次のように.bashrcにエイリアスを設定しました。

alias u='cd ..'

私の世界ではすべてがうまくいっていますcd ..。実際、この特別なことにおいて、それはかなり根深いものです。私の行動を変えるのは難しいです。深刻な介入が必要です。

だから私は自然に次のものを使用しないように別のエイリアスを設定してみましたcd ..

alias 'cd ..'='echo "Use your alias!"'

しかし、これは明らかに動作しません。私の考えでは、これはu何らかの方法でエイリアシングの無限ループでエイリアシングと衝突する可能性があるということです。

どんなアイデアがありますか?

ベストアンサー1

コマンドにいくつかの追加引数を提供するよりも複雑なのは、エイリアスではあまりにも多くのことであり、代わりに関数が必要です。builtin cd原稿を思い出させるために使用されます。

cd () {
  if [ "$*" = ".." ]; then
    echo 1>&2 'Use your alias instead!'
    return 2
  else
    builtin cd "$@"
  fi
}

bash ≥4.0を実行すると、この特定のエイリアスの有用性に疑問があります。shopt -s autocd自分の名前を入力して~/.bashrcから、..または別のディレクトリ名を入力すると、そのディレクトリに切り替えられます。

おすすめ記事