Zsh

zsh - where 和 which 在第一行給出不同的結果

  • March 31, 2022

我正在使用 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

如您所見,wherewhich在第一行給出不同的結果,這是為什麼呢?

在查找外部執行檔where時,aka對命令whence -ca進行完整$PATH查找,而whichakawhence -c依賴於記憶體數據(由$commands特殊關聯數組公開)。

如果/usr/local/Caskroom/miniconda/base/envs/tg/bin/ipython文件是在記憶體建立後添加的,它將被whence.

執行hash -r/rehash將使該記憶體無效,之後您可能會發現wherewhich同意。有關詳細資訊,請參閱程式碼

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