跳到主要内容

dirname & idirname

自 3.1 版本起

dirname 术语允许匹配给定文件的父目录结构。

对于下面的示例,假设有一个文件,其完整名称(从项目根目录的相对路径)为 foo/bar/baz,则 dirname 部分为 foo/bar

以下两个术语将匹配任何 dirname 与 foo/bar 完全匹配或为 foo/bar 的任何子目录的文件。 第一个是对第二个的简写

  ["dirname", "foo/bar"]
["dirname", "foo/bar", ["depth", "ge", 0]]

这些术语中的第二个使用基于文件在指定 dirname 中的深度的关系表达式。 如果文件直接包含在指定的 dirname 中,则认为该文件的 depth == 0。 如果它包含在指定 dirname 的直接子目录中,则其 depth == 1;如果它包含在孙子目录中,则其 depth == 2,依此类推。

关系表达式接受与size 术语中描述的相同的关系运算符。

如果您只想匹配直接位于 foo/bar 目录中的文件

  ["dirname", "foo/bar", ["depth", "eq", 0]]

如果您只想匹配位于孙子目录或更深层目录中的文件

  ["dirname", "foo/bar", ["depth", "ge", 2]]

idirnamedirname 的不区分大小写版本。 如果检测到受监视的根目录是不区分大小写的文件系统,则 dirname 等效于 idirname