Luego De Usar PhotoRec
Jump to navigation
Jump to search
Puede ser difícil ordenar los archivos recuperados por PhotoRec. Aquí encontrará algunas ideas para ayudarlo en este proceso.
Ordenar archivos por extensión
- Se puede usar este Script de Python para ordenar los archivos encontrados por extensión:
- Guardar el siguiente código como un archivo (recovery.py) y luego ejecutarlo con el parámetro 'source' & 'destination'
Ejemplo: $ python recovery.py /home/me/recovered_files /home/me/sorted_files
#!/usr/bin/env python import os import os.path import shutil import sys source = sys.argv[1] destination = sys.argv[2] while not os.path.exists(source): source = raw_input('Enter a valid source directory\n') while not os.path.exists(destination): destination = raw_input('Enter a valid destination directory\n') for root, dirs, files in os.walk(source, topdown=False): for file in files: extension = os.path.splitext(file)[1][1:].upper() destinationPath = os.path.join(destination,extension) if not os.path.exists(destinationPath): os.mkdir(destinationPath) if os.path.exists(os.path.join(destinationPath,file)): print 'WARNING: this file was not copied :' + os.path.join(root,file) else: shutil.copy2(os.path.join(root,file), destinationPath)
Jpeg
- Los modelos PowerShot de Canon guardan su número de secuencia en el dato Exif, así que usando un programa que pueda extraer los datos Exif a texto, como el jhead, y el siguiente Script de Perl, puede esencialmente recuperar todos los archivos JPG a sus nombres originales. --Vees 01:59, 8 January 2007 (CET)
$working_dir = '.'; $jhead_bin = '/usr/local/bin/jhead'; @recovered_files = `ls $working_dir`; foreach $file (@recovered_files) { chomp $file; @exif = `$jhead_bin -v $working_dir/$file`; foreach $line (@exif) { if ($line =~ /Canon maker tag 0008 Value = 100(\d{1,8})$/) { system("mv $working_dir/$file $working_dir/IMG_$1.JPG"); print "IMG_$1.JPG from $file\n"; last; } } }
- El siguiente es un archivo Batch para Windows que recrea la estructura de directorios original y los nombres de archivos presentes en la tarjeta de memoria (para cámaras Canon, probado con una cantidad importante de fotografías de una EOS20D), usando el número de archivo de la información EXIF (usando a su vez ExifTool, de manera similar al script anterior).
--Joey 08:36, 17 July 2008 (CEST)
@echo off for %%f in (*.jpg) do call :process %%f goto :eof :process for /f "usebackq delims=- tokens=1,2" %%a in (`exiftool -p ^"^$FileNumber^" %1`) do set gnum=%%a&set fnum=%%b if "%gnum%"=="" goto :eof if "%fnum%"=="" goto :eof if not exist %gnum%CANON ( echo Creating directory %gnum%CANON mkdir %gnum%CANON ) echo Moving %1 to %gnum%CANON\_mg_%fnum%.jpg ren %1 _mg_%fnum%.jpg>NUL move _mg_%fnum%.jpg %gnum%CANON>NUL goto :eof
Quitar la basura (invisible) al final de una imagen recuperada
- En Linux, para las extensiones que ImageMagick puede comprender, para remover la basura al final de un archivo, se puede ejecutar algo como
for file in recup_dir*/*; do convert $file $file; done
- En Linux (ó con Perl y 'convert'), se puede automatizar lo antedicho con un un loop "for", así como otras tantas tareas de procesamiento batch con fix_img
Encontrando duplicados
- En Linux, md5sum puede ser usado para encontrar archivos duplicados, quizás solamente aplicando el hash a los primeros "n" bytes
En este ejemplo, chequeamos los primeros 80k de recup_dir*/*.sib
for file in recup_dir.*/*.sib; do MD5=`dd count=20 bs=4k if="$file" 2> /dev/null|md5sum`; echo "$MD5 $file"; done|sort 1a07198de3486ff2ecab7859612fe7ba - Box Clever.sib 33105f4a7997b2e2681e404b3ac895f2 - Random, Matching - 2 bars.sib 376e0c53e78e56ba6f2858d9680f8c6b - 01aIdentifyCommonInst.sib b0b40a516a1e26660748a0a09cdf3207 - 01ArticulationFlashcards.sib
Cada checksum es únivoco, no hay posibilidad de duplicados (es decir, la posibilidad es ínfima)
- En Linux (ó con Perl y 'sum'), se pueden encontrar duplicados en una jerarquía usando find_dup ó finddup de fslint.
- En Windows se puede usar la utilidad fc para encontrar duplicados, el siguiente archivo Batch (no funciona en Win9x/ME) puede ayudar:
--Joey 08:36, 17 July 2008 (CEST)
@echo off SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION SET FILELIST= FOR %%i IN (*) DO ( FOR %%j IN (!FILELIST!) DO ( IF %%~zi EQU %%~zj ( fc /b "%%~i" "%%~j">NUL && echo "%%~i" = "%%~j" ) ) SET FILELIST=!FILELIST! "%%~i" ) ENDLOCAL
- En Windows puede agregar una "/r" (sin las comillas) luego de ambos "fors" en el archivo batch anterior.
- En sistemas Unix, puede utilizar fdupes y el siguiente script para generar un script de shell con sentencias rm (remove) para eliminar todos los archivos duplicados:
#!/bin/sh OUTF='rm-dups.sh' if [ -e $OUTF ]; then echo "File $OUTF already exists." exit 1; fi echo "#!/bin/sh" > $OUTF fdupes -r -f . |sed -r 's/(.+)/rm \1/' >> $OUTF chmod +x $OUTF
MP3, Ogg vorbis...
La mayoría de los mp3 y archivos ogg tienen información embebida sobre el Título, Album y Autor. Puede usar EasyTag para automáticamente renombrar los MP3 recuperados usando esta información.
MS Office
- Para leer archivos de Office dañados (doc/xls/ppt/...) que MS Office no puede leer, puede intentar utilizar OpenOffice. OpenOffice.org es una suite de Oficina multiplataforma y multiidioma, además de ser un proyecto open-source. Es compatible con la mayoría de las suites de Office de Microsoft. El producto es de libre descarga, uso y distribución.
- Algunos documentos de MS Office (xls/ppt/...) pueden ser convertidos a Word (DOC) al ser recuperados, simplemente cambie su extensión de DOC a la que corresponda.
MS Outlook
- Para recuperar archivos de Outlook (PST) puede intentar utilizar la herramienta Scanpst.