zsh 别名“...”

zsh 别名“...”

我有一个 ZSH 别名:

alias -g ...='../..'
alias -g ....='../../..'

当我尝试 时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 爱好者页:

全局别名可以在命令行的任何地方使用。例如:

$ alias -g C='| wc -l'
$ grep alias ~/.zsh/* C
443

ZSH 简介还表示全局别名可以在命令行的任何地方替换。

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

答案1

原因可能是 '.../file' 中的 '...' 没有空格/边界分隔?
例如在 zsh-lovers 示例中,'C' 前面有一个空格。

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

答案2

与别名相比,静态命名目录 ~...将扩展到../..内部路径,如果定义为

$ hash -d ...=../..

例如,

$ cd /usr/share/zsh
$ readlink -m ~...
/usr

相关内容