Ruby - 搜索并收集所有目录中的文件

时间:2012-03-21 01:51:24

标签: ruby

我正在尝试使用ruby脚本在我的unix系统上的所有目录中搜索某种文件类型。我理解以下代码将搜索当前目录中以.pdf结尾的所有文件:

my_pdfs = Dir['*pdf']

以及:

my_pdfs = Dir.glob('*.pdf').each do |f|
  puts f
end

但是如何在所有目录和子目录中搜索扩展名为.pdf的文件呢?

2 个答案:

答案 0 :(得分:4)

查看Find模块: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/find/rdoc/Find.html

使用Dir.glob不太理想,因为globbing几乎不像find那样处理递归。

此外,如果您在* nix框中,请尝试使用find命令。它非常适用于一个衬垫。

答案 1 :(得分:1)

可能是这样的:

pdfs=Dir['/**/*.pdf']

现在不使用Linux,所以不知道是否可行。 **语法意味着递归列表。