Command
轉到可執行命令所在的目錄
這是一本書“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)"%/*}"