#!/usr/bin/env ruby dir = ARGV[0] a = `find #{dir} -type f`.split "\n" h = {} a.each { |fn| md5 = `md5sum "#{fn}" | cut -d " " -f1` if h.has_key? md5 h[md5] << fn else h[md5] = [fn] end } h.each { |k,v| if v.size > 1 puts k v.each { |i| puts "\t#{i}" } puts end }