Ayuda con script

Muy buenas, después de hacer una soberana "caga**" en ubuntu me dispongo a realizar un pequeño script para arreglar el lío que he hecho.

He borrado sin querer (sin saber) todo un disco duro entero. He recuperado mediante Photorec todos los archivos (o eso creo) y están copiados en un disco externo.

Quiero hacer un pequeño (o grande) script para copiar los archivos del disco duro externo al "original". Como Photorec los va recuperando y metiendo en carpetas (tengo cerca de 16000 carpetas) me gustaría que al menos los ordenase por extensión en diferentes carpetas.

Me explico: cada archivo .avi en su carpeta de .avi, .mp3 en su carpeta de .mp3 y así sucesivamente.

El compañero P4j4r0 N3gr0 me ha dejado un pequeño script para hacer eso pero hace años que no toco nada de linux y estoy más perdido que un hijo **ta el día del padre.

#!/bin/bash

for line in `find <ruta> -type f -print`
do
TYPE=`file ${line}`

case $TYPE in
jpg)
hazcosas (mueve, copia, renombra, etc)
;;
ascii)
hazcosas (mueve, copia, renombra, etc)
;;
elf)
hazcosas (mueve, copia, renombra, etc)
;;
bin)
hazcosas (mueve, copia, renombra, etc)
;;
loquesea)
hazcosas (mueve, copia, renombra, etc)
;;
esac
done

exit 0


He hecho algunas modificaciones para que me vaya cogiendo los archivos que más me interesan (tengo .java a punta pala y también .txt) y no sé muy bien cómo seguir... Me imprime todo en pantalla (cosa que no quiero)...

Alguien me podría ayudar? Es de vita importancia...

Muchísimas gracias!!!
Si solo has borrado, prueba a usar extundelete, http://extundelete.sourceforge.net/, siempre que uses ext3/ext4
nu_kru escribió:Si solo has borrado, prueba a usar extundelete, http://extundelete.sourceforge.net/, siempre que uses ext3/ext4


Todavía no he tocado ese disco duro, sólo formateado en ubuntu (el formato rápido) y luego formateado en Windows para que me reconociera el disco para tratar de usar el getdataback...

Vamos no he escrito nada encima.

Con esa aplicación recupero los archivos con sus nombres? El disco estaba en formato ntfs y ahora también...

Muchas gracias
puedes molestarte en leer la documentación

http://extundelete.sourceforge.net/options.html

--restore-all

Restores all files possible to undelete to their names before deletion, when possible. Other files are restored to a filename like "file.NNNN".
nu_kru escribió:puedes molestarte en leer la documentación

http://extundelete.sourceforge.net/options.html

--restore-all

Restores all files possible to undelete to their names before deletion, when possible. Other files are restored to a filename like "file.NNNN".


Me he leído la documentación y no me vale con mi disco duro ya que está en ntfs formateado
Por si te sirve de algo, el photorec en principio tiene una opción que te permite recuperar sólo ciertos tipicos de archivos, por si quieres volver a hacer la recuperación probando esa opción. Pero bueno, lo suyo sería intentar ordenar esos archivos recuperados.
Insisto, la recuperación de particiones con TestDisk deberías intentarlo, ademas es multiplataforma, pero weno, a ver si damos un paso más en esto, mira, por ejemplo, en mi ordenador:

usuario@h0m3r:~/Escritorio/temp$ for line in `find . -type f -print`
> do
> file ${line}
> done
./archimagos.odt: OpenDocument Text
./Archivos_adjuntos_201595.zip: Zip archive data, at least v2.0 to extract
./debian-8.1.0-amd64-netinst.iso: x86 boot sector
./debian-7.8.0-amd64-netinst.iso: x86 boot sector
./200px-Tocado-por-su-tallarinesco-apendice.jpg: JPEG image data, JFIF standard 1.01
./debian_logo.jpeg: JPEG image data, JFIF standard 1.01

Bien, tengo un documento de libreoffice, un zip, 2 isos y 2 imagenes jpg.

Solo me interesan los tipos principales de archivos, por lo que lo completo con:

usuario@h0m3r:~/Escritorio/temp$ for line in `find . -type f -print`; do file ${line}; done | awk '{print $2}' | sort -u
JPEG
OpenDocument
x86
Zip

Ya se que tipo de archivos tengo y puedo asociarlos a los case (o if o lo que sea que te sea más cómodo), ahora, el fichero que me responda que es un JPEG lo meteré en una carpeta JPEG, las iso por x86 (igual esto exige hilar un poco más fino pero el metodo es igual), los zip en otro directorio, etc. Con estas cadenas aplicadas a nuestro case e ir distribuyendo los ficheros por sus directorios correspondientes.

Para poner cada fichero en su sitio quizá sea un poco más retorcido, para las JPEG miraría los metadatos de la camara, para los odt el título del documento (en el interior), para las iso, pues igual las monto en un directorio con un bucle y miro en el etc el fichero de os_release... no se.

Y yo lo he hecho en bash porque me sale solo, pero nadie te dice que no puedas usar PowerShell o Python o... lo que sea vaya.

Creo que la presión está jugando en contra tuya.
Muy buenas a todos!!! Gracias por las respuestas!!! Estaba desesperado.

Al final reinstalé Windows y le pase el Easy Recover y ya tengo todo tal cual: carpetas, nombres de archivo, etc.


Un saludete!!!
7 respuestas