zsh 别名“...”

sim*_*ont 5 zsh shell

我有一个 ZSH 别名:

alias -g ...='../..'
alias -g ....='../../..'
Run Code Online (Sandbox Code Playgroud)

当我尝试时cd ...,一切都很完美。但是,我无法在cp命令中使用它:cp .../file .失败并显示cp: .../file: No such file or directory

此外,尝试使用别名,例如:cd .../dir失败:cd:cd:10: no such file or directory: .../dir。使用做同样的事情cd ...; cd dir效果很好。

来自zsh-lovers页面:

全局别名可以在命令行中的任何位置使用。例子:

$ alias -g C='| wc -l'
$ grep alias ~/.zsh/* C
443
Run Code Online (Sandbox Code Playgroud)

ZSH简介还指出全局别名可以在命令行中的任何位置替换。

为什么我的别名没有像我想象的那样被使用?

Chr*_*048 4

也许原因是“.../file”中的“...”不是空格/边界分隔的?
例如,在 zsh-lovers 示例中,“C”前面有一个空格。

从另一个 SU 问题中,我发现以下内容可能会有所帮助:
nicoulaj / dotfiles:rationalize-dots