圧縮ファイルを調べる[Ruby]

require 'fileutils'
require 'pp'

def search(file, result)
  if( file =~ /.*?\.(ear|zip|jar|war)/ )
    FileUtils.mkdir("./temp_#{file}")
    FileUtils.cp(file,"./temp_#{file}")

    FileUtils.cd("./temp_#{file}") {|dir|
      Dir.glob("*.#{$1}"){|f|`unzip -n #{f}`}
      FileUtils.rm(file)
      Dir.glob("*").sort.each{|f| 
        sub_result = []
        sub_result << f
        result << sub_result
        search(f, sub_result)
      }
    }
  else
    begin
      FileUtils.cd("./#{file}") {
        Dir.glob("*").sort.each{|f|
          sub_result = []
          sub_result << f
          result << sub_result
          search(f, sub_result)
        }
      }
    rescue
    end
  end
end


result = []
file = ARGV[0]
result << file

search(file, result)
FileUtils.rm_rf("./temp_#{file}")

pp result