在ZSH中0 ## * /做什么?

时间:2013-02-22 19:56:34

标签: zsh

我知道这是一种模式,它会导致一些搜索发生:

zsh: no matches found: 0##*/

但是,我不知道它正在搜索什么或者什么命令行工具实际上正在处理请求。

1 个答案:

答案 0 :(得分:1)

该错误来自zsh本身进行文件名扩展(AKA globbing)。这将在 zshexpn 手册页的文件名生成部分中介绍。

如果您设置了EXTENDED_GLOB选项(在 zshoptions 手册页中介绍),则##令牌在扩展正则表达式中的行为类似于+ ,匹配前一项的一次或多次出现(在您的示例中为0)。以下*将匹配任何字符序列(包括任何内容)。最后的/会限制与目录的匹配。因此,整个模式将匹配当前目录中名称以0开头的任何目录。虽然没有任何理由使用##部分;它不会影响结果,并使模式更容易混淆,不可移植到其他shell。

如果未设置该选项,则##字符将按字面意思获取。 */字符的处理方式与前一段中描述的相同。整个模式将匹配当前目录中名称以0##开头的任何目录。