Nos encontramos ante una biblioteca de decenas de miles de archivos fotográficos, de los cuales un porcentaje considerable está corrupto.
Objetivo
Depurar las imágenes corruptas a fin de organizar como es debido nuestra biblioteca.
Solución
Nota: sólo aplicable a sistemas linux
Vamos a necesitar la aplicación ImageMagick:
$sudo apt-get install imagemagick
y rsync, que debería venir instalado por defecto en tu distribución linux.
Primer paso:
Identificamos los archivos corruptos y los volcamos a un fichero.
IFS=$'\n';forfin$(find/directorio/con/fotos-name'*.jpg'-or-name'*.JPG');doidentify$f>/dev/null||echo$f>>/tmp/fail;done;cat/tmp/fotos_corruptas
Este comando recorre de manera recursiva todos los ficheros con extensión .jpg y, en caso encontrar uno corrupto, inserta una nueva línea en el fichero fotos_corruptas con la ruta del fichero corrupto. Por último, muestra por pantalla el contenido de dicho fichero.
Este paso nos sirve para comprobar que, efectivamente, estamos detectando ficheros inválidos.
Segundo paso:
Movemos todos los ficheros corruptos a un directorio para su posterior borrado:
IFS=$'\n';forfin$(find/home/yolanda/Imágenes-name'*.jpg'-or-name'*.JPG');doidentify$f>/dev/null||rsync-avR$f/tmp/imagenes_corruptos;done;ls/tmp/imagenes_corruptas
De esta manera moveríamos todos los ficheros corruptos a la carpeta ficheros_corruptos. El inconveniente de esta comando es que, en caso de que dos ficheros tuvieran el mismo nombre, se sobrescribirían. De ahí que sea más pertinente usar rsync.
Versión definitiva::
IFS=$'\n';forfin$(find/home/yolanda/Imágenes-name'*.jpg'-or-name'*.JPG');doidentify$f>/dev/null||rsync-avR$f/tmp/imagenes_corruptas;done;ls/tmp/imagenes_corruptas
Este comando mueve todos los ficheros corruptos a /tmp/imagenes_corruptas, respetando el árbol de ficheros.
Escenario Cuál fue mi sorpresa cuando la semana pasada al intentar acceder a este blog me encontré que estaba bloqueado por Firefox. Probé con Chrome, misma situación. En vez de cargar la página, el navegador mostraba una pantalla en rojo avisando que el sitio puede contener programas dañinos para mi ordenador. Problema Aunque los dos…
Si utilizas Codeigniter te habrás dado cuenta que, por defecto, index.php va estar incluido en tu URL, lo cual no queda muy bonito. Afortunadamente se puede quitar fácilmente de modo que la URL de Codeigniter quede de este modo: http://predatum.com/edit/contact
Escenario Estoy desplegando una aplicación web en un directorio en el que pretendo puedan escribir todos los usuarios perteneciente a un grupo dado. Problema No basta con crear un grupo, añadir los usuarios al tal grupo y adjudicar el directorio al grupo en cuestión. Solución Empecemos desde el principio. Los usuarios Antonio y Carla han…
Este año me he matriculado de nueve asignaturas, una de ellas anual de modo que me ha tocado preparar diez exámenes. A diferencia de convocatorias anteriores este segundo cuatrimestre he decido estudiarlo a base de hacer tests, muchos tests. No he leído de antemano los manuales, ni siquiera he utilizado apuntes. También he prescindido de…
Escenario El otro día me avisaron que una de las decenas de webs bajo mi responsabilidad tenía el certificado caducado. A principio de mes estuve actualizando los certificados de todos los servidores, pero éste se me pasó. Problema Al no ser una web a la que demos mucho uso, tenía actualizaciones de seguridad pendientes de…