`(.N)` 在这个扩展的 glob 中做了什么?

What does `(.N)` do in this extended glob?

Prezto 文档有以下用于设置符号链接的示例脚本:

setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

我理解 "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N) 直到 (.N) 的所有内容。这里的 (.N) 是什么意思?

奖金问题,什么是 ${rcfile:t}?我知道它解析为 rcfile 的名称,但我不知道 :t 的用途。

以下文章否认或否定 (.N) 所有以 '^' 开头且 README.md 的内容 ^README.md(.N)

^ 符号是一个正则表达式,表示某事的开始。

${rcfile:t}部分只允许名称剥离字符串的目录名称。 因此,循环将为 zpresto 目录的每个配置文件创建所需的符号链接。

glob(扩展 glob,实际上)^README.md(.N)扩展到所有文件 除了README.md,或 returns null(空字符串)。

extended:setopt 行设置。 ^ 需要(见下文)。

文件: (.N)中的代表文件(不是目录也不是链接)。

除了 README.md: ^。想想正则表达式中方括号内的 ^ 。那 不是 意味着以 README.md.

开头的文件

null: (.N)中的N。如果扩展失败,它表示通配到 return 一个空字符串。否则,如果 ${ZDOTDIR:-$HOME}"/.zprezto/runcoms/" 只有 README.md 文件或根本没有文件,该行将 return 出错。