lunes, 10 de enero de 2011

Copiar el contenido de varios directorios a uno sólo

Por ejemplo: Tengo varias carpetas con fotos y además en varias subcarpetas. Quiero copiarlas todas las fotos a una única carpeta sin que me copie las carpetas y subcarpetas en las que están contenidas.
Usamos los comandos find y cp:
find /ruta/a/directorio/origen -name *.jpg -exec cp '{}' /ruta/a/directorio/destino \;

Por ejemplo para copiar todos los .jpg del directorio fotos1 (donde ahora tengo las fotos a copiar; con todos sus subdirectorios) al directorio fotos2:
find /home/tu-usuario/fotos1 -name *.jpg -exec cp '{}' /home/tu-usuario/fotos2 \;
*Atención: Distingue mayúsculas de minúsculas. .jpg no es igual que .JPG
*Si los archivos son de otro tipo, cambiamos la extensión a buscar.