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]]
idirname 是 dirname 的不区分大小写版本。 如果检测到受监视的根目录是不区分大小写的文件系统,则 dirname 等效于 idirname。