elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Ruby] [APORTE] FINDUS (Find Duplicates)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ruby] [APORTE] FINDUS (Find Duplicates)  (Leído 1,596 veces)
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.877



Ver Perfil
[Ruby] [APORTE] FINDUS (Find Duplicates)
« en: 14 Abril 2012, 17:58 pm »



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"



Código
  1. # -*- coding: UTF-8 -*-
  2.  
  3. require "zlib"
  4. exit if Object.const_defined?(:Ocra)
  5.  
  6. def logo()
  7. print '
  8.  
  9.   _______   __     _____  ___    ________    ____  ____    ________  
  10.  /"     "| |" \\   (\\"   \\|"  \\  |"      "\\  ("  _||_ " |  /"       )
  11. (: ______) ||  |  |.\\\\   \\    | (.  ___  :) |   (  ) : | (:   \\___/  
  12.  \\/    |   |:  |  |: \\.   \\\\  | |: \\   ) || (:  |  | . )  \\___  \\    
  13.  // ___)   |.  |  |.  \\    \\. | (| (___\\ ||  \\\\ \\__/ //    __/  \\\\  
  14. (:  (      /\\  |\\ |    \\    \\ | |:       :)  /\\\\    //\\   /" \\   :)  
  15.  \\__/     (__\\_|_) \\___|\\____\\) (________/      \\__/     (_______/  
  16.  
  17.           Find Duplicates v1.0       By Elektro H@cker
  18.  
  19. '
  20. end
  21.  
  22. def help()
  23. print '
  24. Este programa busca archivos duplicados comprobando el hash CRC32.
  25.  
  26. [*] Modo de empleo:
  27.  
  28.     FINDUS [OPCIONES] [RUTA]
  29.  
  30. [*] Opciones:
  31.  
  32.     [-R]  Habilita la búsqueda recursiva en subdirectorios.
  33.  
  34. [*] Ejemplos:
  35.  
  36.     FINDUS "%CD%"
  37.     FINDUS -R "C:\Windows"
  38.  
  39. '
  40. Process.exit
  41. end
  42.  
  43. def errorcontrol()
  44.  if ARGV.empty?
  45.    help
  46.  elsif ARGV.length == 2 and not File.directory? (ARGV[1])
  47.    help
  48.  elsif ARGV.length == 1 and not File.directory? (ARGV[0])
  49.    help
  50.  end
  51.  if ARGV[0] =~ /-r/i
  52.    $folder = ARGV[1]
  53.    Dir.chdir($folder)
  54.    resursive = File.join("**", "*.*")
  55.    $files = Dir.glob(resursive)
  56.  elsif
  57.    $folder = ARGV[0]
  58.    Dir.chdir($folder)
  59.    not_resursive = File.join("*.*")
  60.    $files = Dir.glob(not_resursive)
  61.  end
  62. end
  63.  
  64. logo
  65. errorcontrol
  66. $list = ""
  67.  
  68. # Listar los archivos del directorio
  69. File.open("#{ENV['TEMP']}\\dir.txt", 'w+') do |file|  
  70. file.puts $files
  71. end
  72.  
  73. # Comparar el crc de cada archivo listado
  74. File.read("#{ENV['TEMP']}\\dir.txt").each_line { |line|
  75. begin
  76.  file      = File.read(line.strip) ; nil
  77.  file_crc  = Zlib.crc32(file,0).to_s(16)
  78.  file_size = File.size(line.strip)
  79.   if $list[file_crc.to_s]
  80.     print "#{$folder}\\#{line.strip.gsub('/', '\\')}\n#{$list.split(file_crc).first.split(")").last.split("\n\n").last}#{file_crc})\n\n"
  81.   end
  82.  $list << "#{$folder}\\#{line.strip.gsub('/', '\\')}\n(CRC32: #{file_crc}) (BYTES: #{file_size})\n\n"
  83. rescue
  84.  print "Archivo inaccesible #{$folder}\\#{line}"
  85. end
  86. }
  87.  
  88.  
  89. __END__
  90.  

PD: Tiene algunos fallos en los permisos de las carpetas especiales de windows

Saludos.


« Última modificación: 14 Abril 2012, 18:03 pm por EleKtro H@cker » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RUBY] (APORTE) MoveIt (Complemento para el menú SendTo de Windows)
Scripting
Eleкtro 5 5,545 Último mensaje 7 Marzo 2012, 09:45 am
por Eleкtro
[APORTE] Ruby 1.9.3 portable auto-instalable para Windows by Elektro H@cker
Scripting
Eleкtro 1 3,531 Último mensaje 7 Marzo 2012, 09:46 am
por Eleкtro
[APORTE] [RUBY] Shack (Imageshack Uploader)
Scripting
Eleкtro 0 1,839 Último mensaje 19 Marzo 2012, 15:18 pm
por Eleкtro
[Ruby] [APORTE] Text Protector
Scripting
Eleкtro 1 2,995 Último mensaje 3 Abril 2012, 15:59 pm
por FranciskoAsdf
[BATCH/RUBY] [APORTE] REG2BAT (Convierte archivos REG a BAT)
Scripting
Eleкtro 1 4,437 Último mensaje 17 Septiembre 2012, 10:10 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines