我想为我的工作目录设置一个别名,它可以随着上下文的变化而变化,我试图找到一个足够短的别名来替代~
。如果可以为别名设置一个字符名称,我会非常高兴。比如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
}