上下文
这涉及 ZSH 波浪线扩展(如 bash tilde expansion 中)。
示例:~http
扩展为 /srv/http
,它(大致)是 中设置的用户
。 http
的主页/etc/密码
我想做什么
我想配置 ZSH 以获得我希望的任何文件名波浪线扩展。
这类似于在我的 .zshrc
中设置 alias ~foo/foo/bar
。
我不想要的
我可以创建(作为 root)用户 foo
并将它的主页设置为 /foo/bar
但是因为 any 用户应该可以做到这一点,这样的解决方案是 Not Acceptable 。
另外,这与~
到$HOME
的补全无关。
杂项
这篇文章讨论了 bash 波浪线扩展的本质:Meaning of tilde in Linux bash (not home directory) .
感谢您的回答! ;-)
最佳答案
您可以使用其中一种(或两种)方式:
hash -d foo=/foo/bar
(hash
builtin command )foo=/foo/bar/
现在,我们也可以使用 cd ~foo
将当前目录更改为 /foo/bar
。
它被称为 “Static named directories”在 zsh 中。
注意:当CDABLE_VARS
shell option是事件的,如果目录(/foo/bar
在这个例子中,我们甚至可以在上面的例子中做 cd foo
而不是 cd ~foo
) 存在。
关于linux - 自定义 ZSH 波浪号扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28729165/