Zsh ${PWD:A}的含义是什么?

Zsh ${PWD:A}的含义是什么?,zsh,Zsh,我正在阅读一些zsh脚本,发现这个语法${PWD:A}。我知道$PWD是什么,也知道bash变量替换语法(主要是由于)。尽管如此,我还没有找到任何文档解释zsh的${variable:flag}语法${PWD:A}返回$PWD的符号链接自由绝对路径。它通过以下方式做到这一点: 在当前目录前添加前缀 解析任何。和 如果系统具有realpath系统调用,则解析符号链接-现代系统会这样做 由于$PWD已经是当前目录的绝对路径,并且不包含。或元素(至少它确实不应该包含),${PWD:A}只需解析任何

我正在阅读一些zsh脚本,发现这个语法
${PWD:A}
。我知道$PWD是什么,也知道
bash
变量替换语法(主要是由于)。尽管如此,我还没有找到任何文档解释
zsh的${variable:flag}语法
${PWD:A}
返回
$PWD
的符号链接自由绝对路径。它通过以下方式做到这一点:

  • 在当前目录前添加前缀
  • 解析任何
  • 如果系统具有
    realpath
    系统调用,则解析符号链接-现代系统会这样做
由于
$PWD
已经是当前目录的绝对路径,并且不包含
元素(至少它确实不应该包含),
${PWD:A}
只需解析任何符号链接


${name:flag}
语法允许对参数使用历史扩展修饰符

本节实际上对此进行了解释(另请参见
man zshexpn
)。不幸的是,它只是文本中的一个句子,没有与其他扩展名一起列出:

除了以下操作之外,还可以应用历史扩展中的修饰符中描述的冒号修饰符:例如,
${i:s/foo/bar/}
对参数
$i
的扩展执行字符串替换

可以在小节中找到可用修饰符的列表。在
A
的情况下:

a

将文件名转换为绝对路径:如有必要,在当前目录前添加前缀,并解析路径中使用的
。请注意,即使文件或任何中间目录不存在,也会发生转换

A

作为
a
,但也应尽可能解决符号链接的使用问题。请注意,
的解析发生在符号链接解析之前。除非您的系统有
realpath
系统调用(现代系统有),否则此调用相当于


正是我要找的。谢谢