You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于whereis命令结果复用的Linux操作咨询

关于whereis命令结果复用的Linux操作咨询

嘿,完全没错!你这个思路太贴合Linux追求高效的调性了,肯定有办法直接复用whereis的结果来切换目录,不过得先留意whereis的一个小细节——它默认会返回二进制文件路径、源码路径、手册页路径好几个位置,所以得先把我们真正需要的二进制文件所在目录提取出来才行。

给你几个实用的方法:

  • 方法一:精准提取whereis的二进制路径
    先用-b参数让whereis只返回二进制文件的路径,再通过awk提取具体路径字段,最后用dirname去掉文件名得到目录:

    cd "$(dirname "$(whereis -b cmatrix | awk '{print $2}')")"
    

    举个例子,whereis -b cmatrix的输出一般是cmatrix: /usr/bin/cmatrix,awk '{print $2}'会把/usr/bin/cmatrix提取出来,dirname再把它变成/usr/bin,最后cd就直接跳过去了。

  • 方法二:用参数扩展简化操作
    先把路径存成变量,再用bash的参数扩展去掉文件名部分,写法更直观:

    # 先获取cmatrix的二进制路径
    cmatrix_bin=$(whereis -b cmatrix | awk '{print $2}')
    # 切换到该文件所在目录
    cd "${cmatrix_bin%/*}"
    

    ${cmatrix_bin%/*}的作用是删掉变量里最后一个/及后面的所有内容,刚好就是我们要的目录。

  • 方法三:用which更直接
    如果确定cmatrix在系统的PATH环境变量里(大部分可执行程序都满足),用which会更简单——它只会返回二进制文件的完整路径,不用额外筛选字段:

    cd "$(dirname "$(which cmatrix)")"
    

要是你经常需要干这种事,还可以把它做成别名,比如编辑你的~/.bashrc或者~/.zshrc文件,加上这一行:

alias cdprog='cd "$(dirname "$(which "$1")")"'

保存后重新加载配置(source ~/.bashrc),之后只要输入cdprog cmatrix就能直接跳转到cmatrix所在目录,效率拉满!

备注:内容来源于stack exchange,提问作者Mathew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 14:24:32