这涉及ZSH波浪扩展(如bash tilde expansion中所述)。
示例:~http
已扩展为/srv/http
,这是(大致)http
中设置的用户/etc/passwd
的主页。
我想配置ZSH以获得我想要的任何文件名代码扩展。
在我的alias ~foo /foo/bar
中设置.zshrc
就像一样。
我可以创建(以root身份)用户foo
并将其设置为/foo/bar
的主页,但是因为任何用户应该能够做到这个,这样的解决方案是不可接受的。
此外,这与~
到$HOME
的完成无关。
本文讨论了 bash 代字号扩展的性质:Meaning of tilde in Linux bash (not home directory)。
谢谢你的回答! ;-)
答案 0 :(得分:2)
您可以使用其中任何一种(或两种方式):
hash -d foo=/foo/bar
(hash
builtin command)foo=/foo/bar/
现在,我们也可以使用cd ~foo
将当前目录更改为/foo/bar
。
在zsh中称为“Static named directories”。
注意:当CDABLE_VARS
shell option处于有效状态时,如果目录(此示例中为cd foo
)存在,我们甚至可以在上面的示例中执行cd ~foo
而不是/foo/bar
。< / p>