我试图找出当我在
micromamba
shell 中调用 micromamba
时使用的 zsh
可执行文件的路径(以便我可以在使用 v2.0.2 时升级可执行文件)最新的)。
我已经尝试过
which micromamba
但这只是返回一个无用的 zsh
函数而不是实际的可执行路径:
$ which micromamba
micromamba () {
__mamba_wrap "${@}"
}
如何找到实际位置,类似于
which python
返回/Users/home/micromamba/envs/py13/bin/python
?
我发现至少有 3 种方法可以做到这一点,但普遍性各不相同:
micromamba
shell 函数调用__mamba_wrap
,所以让我们which
:
$ which __mamba_wrap
__mamba_wrap () {
\local cmd="${1-__missing__}"
case "${cmd}" in
(activate | reactivate | deactivate) __mamba_xctivate "${@}" ;;
(install | update | upgrade | remove | uninstall) __mamba_exe "${@}" || \return
__mamba_xctivate reactivate ;;
(self-update) __mamba_exe "${@}" || \return
if [ -f "/Users/home/.local/bin/micromamba.bkup" ]
then
rm -f "/Users/home/.local/bin/micromamba.bkup"
fi ;;
(*) __mamba_exe "${@}" ;;
esac
}
这强烈建议
/Users/home/.local/bin/micromamba
,但为了确认让我们这样做:
$ which __mamba_exe
__mamba_exe () {
(
"/Users/home/.local/bin/micromamba" "${@}"
)
}
which -a
which -a
建议使用更少的输入相同的路径:
$ which -a micromamba
micromamba () {
__mamba_wrap "${@}"
}
/Users/home/.local/bin/micromamba
这一行的作用与
which -a
基本相同(如果我正确理解 which -a
的作用:
$ echo $PATH | tr ':' '\n' | xargs -I {} find {} -name micromamba 2>/dev/null
/Users/home/.local/bin/micromamba