Zsh
zsh - where 和 which 在第一行給出不同的結果
我正在使用 zsh 並
ipython
在我的中有 2 個執行檔$PATH
:❯ which ipython /usr/local/Caskroom/miniconda/base/bin/ipython ❯ where ipython /usr/local/Caskroom/miniconda/base/envs/tg/bin/ipython /usr/local/Caskroom/miniconda/base/bin/ipython
如您所見,
where
並which
在第一行給出不同的結果,這是為什麼呢?
在查找外部執行檔
where
時,aka對命令whence -ca
進行完整$PATH
查找,而which
akawhence -c
依賴於記憶體數據(由$commands
特殊關聯數組公開)。如果
/usr/local/Caskroom/miniconda/base/envs/tg/bin/ipython
文件是在記憶體建立後添加的,它將被whence
.執行
hash -r
/rehash
將使該記憶體無效,之後您可能會發現where
並which
同意。有關詳細資訊,請參閱程式碼。