Un comando utilísimo de Linux

Es una maravilla la de cosas que se pueden hacer desde línea de comandos de linux (unix, en general), así que pongo por ejemplo este pequeño portento para modificar el tamaño de todas las imágenes encontradas (podría hacer una búsqueda más restrictiva, solo basándome en la extensión de los archivos) y adaptarlas a las dimensiones que desee:

find . -type f -size +1000k -exec mogrify -resize 25% {} \;

Este comando busca los archivos mayores de 1000K (cerca de un megabyte) y reduce su tamaño (como imagen) en un 25% porcentualmente, lo que puede ser una reducción enorme de recursos para una librería de fotografías que se deseen usar en una web, que es para lo que lo estoy usando, de manera que las imágenes que sincronizo en mi base de datos de imágenes no sean desmesuradamente grandes para su posterior descarga y gestión o visualización por parte de Piwigo

Una herramienta tan poderosa como para eliminar o modificar espacios de nombres de archivos, o caracteres no admitidos, como nuestra bienamada ñ, o las acentuaciones, o todas las mayúsculas por minúsculas…

find . -name '* *' -exec rename 's/ /_/g' {} \;

Este comando busca archivos o carpetas (no está especificado el type) que contengan espacios en su nombre (podría haberse buscado otra cosa) y se sustituye por guiones bajos con el comando rename.

find . -depth -exec rename -n y/A-Z/a-z/ {} \;

Cambiamos todas las mayúsculas por minúsculas, tanto en archivos como en carpetas. (Quitando el «-n», lo efectuará, de lo contrario, muestra lo que haría, pero no lo hace)

También me permitiría cambiar las ñ o Ñ por caracteres de mi elección, pero eso es mejor hacerlo con cuidado, porque sustituir por «n» o «N» puede borrar otro archivo… así que es preferible, primero, saber dónde están esos archivos con un comando que los busque como este:

find . -name "*[ñ|Ñ]*" -print

 

Otras opciones increíbles del programa mogrify incluyen la rotación arbitraria de bloque de imágenes, o la reducción absoluta a, por ejemplo, 1024 de ancho forzoso con el atributo «resize 1024».

mogrify -resize 1024 *.jpg
mogrify -rotate "-90" *.jpg

Después de pasar la mañana del martes compleja y parte de la tarde con esto para modificar algunos cientos o miles de archivos, me encuentro esta joya del 2005 que contiene unos cuantos scripts mucho mejor documentados y programados de lo que yo hubiera hecho y con una sencillez tremenda para modificarlos y adaptarlos a lo que necesite.

Esto no es una broma