#!/usr/bin/ruby dir = ARGV[0] Dir.glob("#{dir}/*.zip").each do |f| basename = File.basename(f, ".zip") system "mkdir #{dir}/#{basename}" system "unzip #{f} -d #{dir}/#{basename}" arr = Dir.glob("#{dir}/#{basename}/*") if arr.size == 1 && File.directory?(arr[0]) system "mv #{arr[0]}/* #{dir}/#{basename}/" system "rm -rfv #{arr[0]}" end end