特にコマンドプロンプトを使っているときにそういう場面に遭遇する。
その都度Explorerを開いて作業するのは不便なのでRubyで作ってみた。
locate.rb
#!ruby -Ku
def handle_file(names, name)
basename = File.basename(name)
found = false
names.each do |target|
if basename =~ target
found = true
break
end
end
puts name if found
end
def handle_dir(names, name)
handle_file(names, name + '/')
handle_all(names, name + '/*')
end
def handle_all(names, name)
Dir[name].each do |candidate|
if File.directory?(candidate)
basename = File.basename(candidate)
handle_dir(names, candidate) unless basename == '.' || basename == '..'
else
handle_file(names, candidate)
end
end
end
def locate(names)
names = names.map{|n| Regexp.new(n)}
handle_all(names, '.*')
handle_all(names, '*')
end
if $0 == __FILE__
locate(ARGV)
end
[2009-04-28] Obsoleted by コマンドプロンプトでファイルを探す(リファクタリング)
0 件のコメント:
コメントを投稿