这段zsh代码是如何记录时间的?好像没有约会什么的

这段zsh代码是如何记录时间的?好像没有约会什么的,zsh,Zsh,我在prezto repo中遇到了这段代码,我真的很困惑 它似乎每20小时重建一次zsh comp,但我不知道如何重建 Nm-20似乎是在调用子shell,但Nm-20本身并不是一个程序 $BLAH/zcompdump应该是一个文件,但它不应该是可执行的,那么为什么它周围都是文件 最后,如果$\u comp\u文件似乎是外部的,则测试$\u comp\u文件是否为真,但什么是$\u comp\u文件 加载并初始化完成系统,忽略带有 缓存时间为20小时,因此它几乎总是在第一次缓存时重新生成 she

我在prezto repo中遇到了这段代码,我真的很困惑

它似乎每20小时重建一次zsh comp,但我不知道如何重建

Nm-20似乎是在调用子shell,但Nm-20本身并不是一个程序

$BLAH/zcompdump应该是一个文件,但它不应该是可执行的,那么为什么它周围都是文件

最后,如果$\u comp\u文件似乎是外部的,则测试$\u comp\u文件是否为真,但什么是$\u comp\u文件

加载并初始化完成系统,忽略带有 缓存时间为20小时,因此它几乎总是在第一次缓存时重新生成 shell每天都打开。 自动加载-Uz compinit _comp_files=${ZDOTDIR:-$HOME}/.zcompdumpNm-20 如果$\u comp\u文件;然后 compinit-i-C 其他的 compinit-i fi 取消设置组件文件
神奇之处在于Glob限定符的使用。 在文件名的末尾,可以添加带筛选器的括号

.zcompdumpNm-20仅在不到20天前修改时才会选择此文件。 N表示不显示错误NULL\u GLOB

如果在不到20小时前进行修改,那么让Nmh-20获得它就缺少了一个h

然后搜索全局限定符

你自己试试吧

cd /tmp
touch myfile
z=(myfile(Nmm-1)) ; echo $z
请稍等,然后重试最后一行,带或不带N