Command

轉到可執行命令所在的目錄

  • December 24, 2015

這是一本書“The Productive Programmer”中的命令行技巧:

pushd `which java`/..

作者說這個命令可以暫時去可執行命令java所在的目錄。

當我在 Linux 中輸入這個命令時,Bash 抱怨:

bash: pushd: /usr/bin/java/..: Not a directory

我還嘗試將目錄更改為/usr/bin/java/..直接:

$ pushd /usr/bin/java/.. 
bash: pushd: /usr/bin/java/..: Not a directory

為什麼我失敗了?為什麼不能使用 切換到目錄/..?如何修改此命令以完成相同的任務?

失敗是因為/usr/bin/java是文件,而不是目錄。

你可以做:

cd "$(dirname "$(which java)")"

或使用參數擴展zsh

cd "${"$(which java)"%/*}"

引用自:https://unix.stackexchange.com/questions/251338