Ruby Directory Glob递归绝对路径

时间:2017-12-29 04:05:30

标签: ruby directory glob

我试图获得绝对路径的Dir.glob:

path = "/Users/ken/templates"
scaffold = Dir.glob("#{path}/*.erb", File::FNM_DOTMATCH)
p scaffold.inspect

这是我的目录结构:

/Users/ken/templates/test.erb
/Users/ken/templates/test2.erb
/Users/ken/templates/app/one.erb
/Users/ken/templates/app/two.erb

当我在目录上运行时,我只获取目录根目录中的文件:

"[\"/Users/ken/farmstead/test.erb\", \"/Users/ken/farmstead/test2.erb\"]"

但是没有app子目录的条目。

如何让Glob在绝对路径上递归?

1 个答案:

答案 0 :(得分:2)

要进入子目录,需要指示Dir#glob进入子目录:

#                            ⇓⇓⇓
scaffold = Dir.glob("#{path}/**/*.erb", File::FNM_DOTMATCH)

引用我链接的文档:

  

<强> **
  以递归方式匹配目录。