Dir.glob( pattern, [flags] ) {| filename | block } â nil
Returns the filenames found by expanding pattern which is an
Array of the patterns or the pattern String,
either as an array or as parameters to the block. Note that this
pattern is not a regexp (it's closer to a shell glob). See
File::fnmatch for the meaning of the flags parameter.
Note that case sensitivity depends on your system (so
File::FNM_CASEFOLD is ignored), as does the order in which the
results are returned.
-
* -
Matches any file. Can be restricted by other values in the glob.
*will match all files;c*will match all files beginning withc;*cwill match all files ending withc; and*c*will match all files that havecin them (including at the beginning or end). Equivalent to/ .* /xin regexp. Note, this will not match Unix-like hidden files (dotfiles). In order to include those in the match results, you must use something like"{*,.*}". -
** -
Matches directories recursively.
-
? -
Matches any one character. Equivalent to
/.{1}/in regexp. -
[set] -
Matches any one character in
set. Behaves exactly like character sets in Regexp, including set negation ([^a-z]). -
{p,q} -
Matches either literal
por literalq. Matching literals may be more than one character in length. More than two literals may be specified. Equivalent to pattern alternation in regexp. -
\ -
Escapes the next metacharacter. Note that this means you cannot use backslash in windows as part of a glob, i.e.
Dir["c:\foo*"]will not work, useDir["c:/foo*"]instead.
Dir["config.?"] #=> ["config.h"]
Dir.glob("config.?") #=> ["config.h"]
Dir.glob("*.[a-z][a-z]") #=> ["main.rb"]
Dir.glob("*.[^r]*") #=> ["config.h"]
Dir.glob("*.{rb,h}") #=> ["main.rb", "config.h"]
Dir.glob("*") #=> ["config.h", "main.rb"]
Dir.glob("*", File::FNM_DOTMATCH) #=> [".", "..", "config.h", "main.rb"]
rbfiles = File.join("**", "*.rb")
Dir.glob(rbfiles) #=> ["main.rb",
# "lib/song.rb",
# "lib/song/karaoke.rb"]
libdirs = File.join("**", "lib")
Dir.glob(libdirs) #=> ["lib"]
librbfiles = File.join("**", "lib", "**", "*.rb")
Dir.glob(librbfiles) #=> ["lib/song.rb",
# "lib/song/karaoke.rb"]
librbfiles = File.join("**", "lib", "*.rb")
Dir.glob(librbfiles) #=> ["lib/song.rb"]
Please login to continue.