如何找到 micromamba 可执行二进制文件的真实位置

问题描述 投票:0回答:1

我试图找出当我在

micromamba
shell 中调用
micromamba
时使用的
zsh
可执行文件的路径(以便我可以在使用 v2.0.2 时升级可执行文件)最新的)。

我已经尝试过

which micromamba
但这只是返回一个无用的
zsh
函数而不是实际的可执行路径:

$ which micromamba
micromamba () {
    __mamba_wrap "${@}"
}

如何找到实际位置,类似于

which python
返回
/Users/home/micromamba/envs/py13/bin/python

conda zsh mamba micromamba
1个回答
0
投票

我发现至少有 3 种方法可以做到这一点,但普遍性各不相同:

检查shell功能

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

手动检查 $PATH 上的目录

这一行的作用与

which -a
基本相同(如果我正确理解
which -a
的作用:

$ echo $PATH | tr ':' '\n' | xargs -I {} find {} -name micromamba 2>/dev/null
/Users/home/.local/bin/micromamba
© www.soinside.com 2019 - 2024. All rights reserved.