[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Copiar solo los archivos de tipo image




2015-03-06 8:27 GMT-06:00 Maykel Franco <maykeldebian@gmail.com>:
Buenas, he recuperado un montón de archivos de un disco duro que había
sido formateado e instalado un SO. He usado photorec, y como te va
creado directorios y va metiendo todos los archivos, me gustaría tirar
de un comando para que me busque solo las fotos, pero no solo .jpg,
.jpeg, .png, ... Yo no sé el formato de todas las fotos, con lo cual
me gustaría que el find detectara si es un archivo de tipo imagen,
actualmente estoy usando este comando:

find DIRECTORIO-A-BUSCAR -name '*.jpg' -exec rsync -a --progress {}
DIRECTORIO-RECUPERACIÓN \;


Sencillo en dos pasos 1) Analizar todos los archivos 2) Analizar cuales son de formato imagen sin importar su extensión:

$ find . -type f > /tmp/found.txt
$ while read item;do ifimg=$(file "$item" | grep image | wc -l); if let "ifimg>0";then echo $item;fi; done < /tmp/found.txt

Si quieres diferenciarlos por carpetas entonces debes de hacer un paso adicional y el segundo comando se convertiria un poco más largo:

$ while read item;do ifimg=$(file "$item" | grep image | wc -l); if let "ifimg>0";then extension=$(file "$item" | awk -F":\ " '{print $2}'| awk '{print $1}'); mkdir -p /path/to/recover/$extension; mv "$item" /path/to/recover/$extension/"$item";fi; done < /tmp/found.txt

En lugar de solo hacer un <<echo $item >> ahi puedes hacer el <<mv $item /path/to/recover>>
 
No sé si podría usar este:

find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image'

Y anidarlo a xargs

Saludos.


--
To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: https://lists.debian.org/CAJ2aOA9StYjJ2oWE3Y_b_M-kbKHUfbadH1UnSMLiV3b54YUew@mail.gmail.com




--
================


Reply to: