(http://img515.imageshack.us/img515/1817/prtscrcapturer.jpg)
Esta utilidad busca archivos duplicados comprobando el hash CRC32.
Citar
-  Modo de empleo:
 FINDUS [OPCIONES] [RUTA]
 
 
-  Opciones:
 [-R]  Habilita la búsqueda recursiva de subdirectorios.
 
 
-  Ejemplos:
 FINDUS "%CD%"
 FINDUS -R "C:\Windows"
 
(http://img72.imageshack.us/img72/5564/prtscrcaptufffre3.jpg)
# -*- coding: UTF-8 -*-
require "zlib"
exit if Object.const_defined?(:Ocra)
def logo()
 print '
   _______   __     _____  ___    ________    ____  ____    ________  
  /"     "| |" \\   (\\"   \\|"  \\  |"      "\\  ("  _||_ " |  /"       ) 
 (: ______) ||  |  |.\\\\   \\    | (.  ___  :) |   (  ) : | (:   \\___/  
  \\/    |   |:  |  |: \\.   \\\\  | |: \\   ) || (:  |  | . )  \\___  \\    
  // ___)   |.  |  |.  \\    \\. | (| (___\\ ||  \\\\ \\__/ //    __/  \\\\   
 (:  (      /\\  |\\ |    \\    \\ | |:       :)  /\\\\    //\\   /" \\   :)  
  \\__/     (__\\_|_) \\___|\\____\\) (________/      \\__/     (_______/   
           Find Duplicates v1.0       By Elektro H@cker
'
end
def help()
 print '
 Este programa busca archivos duplicados comprobando el hash CRC32.
 [*] Modo de empleo:
     FINDUS [OPCIONES] [RUTA]
 [*] Opciones:
     [-R]  Habilita la búsqueda recursiva en subdirectorios. 
 [*] Ejemplos:
     FINDUS "%CD%"
     FINDUS -R "C:\Windows"
'
Process.exit
end
def errorcontrol()
  if ARGV.empty?
    help
  elsif ARGV.length == 2 and not File.directory? (ARGV[1])
    help
  elsif ARGV.length == 1 and not File.directory? (ARGV[0])
    help
  end
  if ARGV[0] =~ /-r/i
    $folder = ARGV[1]
    Dir.chdir($folder)
    resursive = File.join("**", "*.*")
    $files = Dir.glob(resursive)
  elsif 
    $folder = ARGV[0]
    Dir.chdir($folder)
    not_resursive = File.join("*.*")
    $files = Dir.glob(not_resursive)
  end
end
logo
errorcontrol
$list = ""
# Listar los archivos del directorio
File.open("#{ENV['TEMP']}\\dir.txt", 'w+') do |file|  
 file.puts $files
end
# Comparar el crc de cada archivo listado
File.read("#{ENV['TEMP']}\\dir.txt").each_line { |line|
 begin
  file      = File.read(line.strip) ; nil
  file_crc  = Zlib.crc32(file,0).to_s(16)
  file_size = File.size(line.strip)
   if $list[file_crc.to_s]
     print "#{$folder}\\#{line.strip.gsub('/', '\\')}\n#{$list.split(file_crc).first.split(")").last.split("\n\n").last}#{file_crc})\n\n"
   end
  $list << "#{$folder}\\#{line.strip.gsub('/', '\\')}\n(CRC32: #{file_crc}) (BYTES: #{file_size})\n\n"
 rescue
  print "Archivo inaccesible #{$folder}\\#{line}"
 end
}
__END__
PD: Tiene algunos fallos en los permisos de las carpetas especiales de windows
Saludos.