在Ruby中有什么办法可以对给定文件进行全局搜索吗?
我尝试了Dir.glob
,但它在当前目录中搜索。对于Find
模块,我需要传递一个目录列表进行搜索。在我的例子中,我需要搜索可能在任何目录中的特定文件。
我如何在Ruby中执行此操作?
答案 0 :(得分:2)
Find
递归到子目录中,所以只需从根路径开始,它就会到处去:
Find.find('/') do |path|
# look for your filename
end
答案 1 :(得分:1)
在拥有locate
命令行工具的系统(如Linux和Mac OSX)上,您可以找到非常快这样的文件:
filename = "test"
array_of_files_found = `locate #{filename}`.split("\n")
请注意将用户提供的参数传递给命令行的危险。 See this answer for details
另请注意,在OSX上,您可能需要创建一个为locate
命令提供支持的数据库,如下所示:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist