Copiar archivos dentro de múltiples directorios a uno distinto en Mac OS X

Hace pocos días actualicé el disco duro del Mini a uno mayor por falta de espacio y tuve que reorganizar mi estrategia de backup, por lo que comencé a hacer limpieza de mis discos duros, tanto internos como externos. Dentro de las cosas que encontré (!) estaban unos comics en formato CBR, que es simplemente una forma de compresión, que quería convertir a PDF para facilitar su lectura.

El proceso es sencillo, porque basta con descomprimir los archivos con cualquier utilidad como 7Zip, The Unarchiver (en Mac OS X) o Winzip, pero me encontré con el problema de que los archivos generados quedaban en distintos directorios y necesitaba tenerlos en uno solo para poder convertirlos a PDF. Como no quería tener que ir directorio por directorio copiando los contenidos al que iba a utilizar para generar el archivo único, comencé a investigar y encontré que la única forma de hacerlo (al menos la que me dio resultado) es usando la línea de comandos y no el Finder.

Si abrimos una ventana de Terminal (ah tiempos aquellos gloriosos de la línea de comandos!) e introducimos este comando, estando en el directorio raíz que contiene los subdirectorios de los cuales queremos copiar los archivos, obtendremos el resultado deseado:

find . -type f -iname *jpg -exec cp {} /Users/user/data \;

Lo que hace esta ristra de letras y signos de puntuación es simplemente buscar los archivos que cumplan una condición (en este caso, que tengan la cadena “jpg” en el nombre) y copiarlos al directorio que especificamos al final (/Users/User/data).

El proceso tardará más o menos según el número de archivos que queramos copiar, ahorrándonos muchos clicks y dolores de cabeza si es que repetimos folder en algún descuido.