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

如何利用CDPATH实现从任意目录快速cd到Documents目录?

如何利用CDPATH实现从任意目录快速cd到Documents目录?

别急,我来把CDPATH的用法给你讲明白,解决你从任意目录直接cd Documents的问题!

首先得搞懂CDPATH到底是干嘛的:当你用cd命令输入一个相对路径(比如Documents,不是以/开头的绝对路径),如果当前目录里找不到这个目标目录,shell就会自动去CDPATH里列出的目录挨个查找——只要在某个目录下找到叫Documents的子目录,就会直接跳过去。但如果你输入的是绝对路径(比如/home/yourname/Documents),那CDPATH就不会生效,shell会直接去指定的路径。

那具体怎么设置才能实现从任意目录cd Documents呢?跟着这几步来:

  • 第一步:确认你的Documents绝对路径
    一般来说,你的Documents目录就在家目录下,你可以用echo ~/Documents命令确认它的完整路径,比如输出可能是/home/guilherme/Documents,那它的父目录就是/home/guilherme(或者直接用~代替)。

  • 第二步:临时设置CDPATH测试效果
    在终端里输入这条命令:

    export CDPATH="~/"
    

    这样就把你的家目录加到了CDPATH里。现在你随便切换到其他目录,比如cd /tmp,然后输入cd Documents,试试是不是直接跳转到你的Documents目录了?

    如果还想加其他常用目录到CDPATH里,就用冒号分隔,比如:

    export CDPATH="~/:/home/guilherme/work:/usr/local/share"
    
  • 第三步:让设置永久生效
    上面的临时设置重启终端就会失效,所以要把配置加到你的shell配置文件里:

    • 如果你用的是bash,就编辑~/.bashrc文件,把export CDPATH="~/"加进去;
    • 如果你用的是zsh,就编辑~/.zshrc文件;
      改完之后,要么重启终端,要么输入source ~/.bashrc(对应你的配置文件)让设置立刻生效。

你之前直接输cd Documents报错,就是因为没设置CDPATH,当前目录又没有Documents这个子目录,shell不知道该去哪里找。而设置CDPATH之后,shell就会按照你指定的目录顺序去查找这个子目录,找到就跳转啦。

举个例子,要是把CDPATH设成"/home/walt/first:/usr/local/bin:/home/walt",当你输cd Documents时,shell会先去/home/walt/first里找有没有Documents,没有就去/usr/local/bin找,最后去/home/walt找——而这里刚好有Documents,所以就成功跳转了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 06:44:27