使用符号的目录别名

使用符号的目录别名

我想为我的工作目录设置一个别名,它可以随着上下文的变化而变化,我试图找到一个足够短的别名来替代~。如果可以为别名设置一个字符名称,我会非常高兴。比如cd %或 之类的?不过,为 分配别名%似乎不起作用。

我尝试寻找变量名的要求,但找不到任何要求。我不知道这是否是 shell 内置的,我不可能是第一个想这样做的人。

我正在使用 zsh,但我标记了 bash,以防在两个 shell 中都有可能实现。

答案1

zsh提供了多种设施来满足您的需求,但我能想到的最接近的是:

alias -g %=/path/to/whereever

%这将替换命令中任意位置的路径。您也可以尝试:

alias '%'='cd /path/to/whereever'

Now%是直接切换到该目录的命令。还有

hash -d work=/path/to/whereever

这将允许您使用~work来引用该目录。

答案2

我不能与 zsh 对话,但是对于 bash,别名仅用于命令而不是参数。

您可能想要编写一个函数:

cdw () {
    case $(pwd) in 
        */some/dir)       cd ../work ;;
        */some/other/dir) cd ~/tmp ;;
    esac
}

相关内容