何年も前に、私は「どのcd」を実行し、「cd:シェルビルトインコマンド」と表示されました。
最近、私はそれを試してみました:
/ usr / bin / which:CDがありません([ここでは再現しない非常に長いパス])
調査したところ、誰かがエイリアスを作成していることがわかりました。
> which which
which alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde
/usr/bin/which
エイリアスを解除すると、「どのCD」が再び正しく機能しました。私の質問:
エイリアスとシェルビルトインの両方で「どちら」を機能させるにはどうすればよいですか?
「which」エイリアスが作成された場所が見つかりませんでした(たとえば、/ etc / cshrc、〜/ .cshrcなどにはありません)。これはどこで発生するので、永久に無効化/編集できますか?
編集:助けてくれたすべての人に感謝します。私はこれを理解したと思います:
- 「which」はtcshに組み込まれており、「/ usr / bin/which」と同じものではありません。
> unalias which; どれ which:シェルビルトインコマンド。
- 「unaliaswhich」はほとんどトリックを行います。以下のように、ビルトイン(上記のように)とエイリアスで動作します(バックスラッシュをエイリアスエスケープとして正しく認識します)。
>エイリアスfooバー; どのfoo foo:バーにエイリアス >どの\foo foo:コマンドが見つかりません。
- エイリアスは私のシステムの/etc/profile.d/which2.cshから来ているように見えますが、profile.dはcsh/tcshではなくsh/bash専用だと思っていたので奇妙です。