进入哪个命令传递的目录的命令行

进入哪个命令传递的目录的命令行

我想使用这样的命令:

 which node && cd $_

当二进制文件驻留时跳转到目录,但是which命令返回二进制文件的所有路径+名称,所以我得到一个错误:

 bash: cd: node: No such file or directory

我正在寻找新的命令将我移动到正确的位置。

答案1

不要使用哪个(除非你在cshtcsh变体中),它已经坏了。使用命令-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))

祝你好运 :)

相关内容