以下のコマンドと同じリストをrubyで取得したい
% find .
下記リファレンスに記載はあるけど、辿り着くまでが面倒だったのでメモとして記載しておく。
ポイント
-
File::FNM_DOTMATCHを利用する。 - FNM_DOTMATCHを利用すると「xxx」に加えて「xxx/.」のように要らない子も取得されてしまうので、rejectする。
# ! /usr/env/ruby
results = Dir.glob("**/*", File::FNM_DOTMATCH).reject{|x| x =~ /\.$/}
results.each do |result|
p result
end