コマンドが渡されるディレクトリのコマンドラインを入力します。

コマンドが渡されるディレクトリのコマンドラインを入力します。

次のコマンドを使用したいと思います。

 which node && cd $_

バイナリがある場合はそのディレクトリに移動しますが、whichコマンドはバイナリのすべてのパスと名前を返すため、エラーが発生します。

 bash: cd: node: No such file or directory

私を正しい場所に移動させる新しいコマンドを探しています。

答え1

どちらを使用してはいけませんか?csh(貴方が該当または変形に属さない限りtcsh)既に破損しています。使用コマンド -v ノード代わりに。

POSIX 見積ディレクトリ名パス名のディレクトリ部分を取得するコマンド:

cd "$(dirname -- "$(command -v node)")"

または、変数を使用してパス名を保存すると、以下を呼び出すことはできませんdirname

nodepath=$(command -v node)
cd "${nodepath%/*}"

答え2

一方、ZShellではやや醜くて厄介な設定が必要です。

cd -- $commands[node]:h

これは、ディレクトリ名にスペースが含まれている場合でも機能します(shwordsplit理解できない理由でオプションが有効になっていない場合)。

答え3

cd $(dirname $(which bash))

頑張ってください:)

関連情報