rsync – Copiar archivos a lo grande

Para copiar archivos en la consola, típicamente usamos cp. Es sencillo, rápido y funciona. Pero cuando se copian grandes cantidades de archivos, o incluso archivos muy grandes, y sobre todo entre dispositivos diferentes, empiezan los problemas. Conectas un pendrive usb, o la tarjeta de memoria de la cámara y le das a copiar 3000 fotos a tu carpeta Imágenes, o intentas pasar un archivo de 1,5gb a un pendrive. Comienza bien, pero pronto notas que empieza a ir cada vez mas despacio, hasta que parece que no acabará nunca.

La solución se llama rsync. Es un comando muy completo y potente que sirve para copiar archivos en forma local o remota, es decir que puedes usarlo entre dispositivos de tu ordenador, o para enviar archivos a través de la red.

Una función muy importante de rsync es que, si los archivos ya existen en la carpeta de destino, no los reescribirá, y si un archivo está cortado lo continúa desde donde ha quedado (por ejemplo, si la copia de aquél archivo de 1,5gb se ha cortado cuando sólo le faltaban 100mb). Es muy útil para hacer copias de seguridad, como mantener una réplica de toda tu carpeta Imágenes en un disco duro externo.

Al grano. Haremos:

rsync -avP /carpeta/de/origen/ /carpeta/de/destino/

ATENCIÓN: Es importante la barra inclinada ( / ) al final del directorio de origen. Si se coloca la barra inclinada, copiará los archivos que hay en ese directorio. Si no se coloca, copiará el directorio completo con sus archivos. En otras palabras:

rsync -avP /media/camera/ /home/yo/Imagenes/  

Copiará todos los archivos que hay dentro de la carpeta camera en la carpeta Imagenes. Pero:

rsync -avP /media/camera /home/yo/Imagenes/  

Creará también la carpeta camera/ dentro de Imágenes, con su contenido, quedando las imágenes dentro de /home/yo/Imagenes/camera/

La opción -a significa que se copiarán los archivos en modo «archivo«, y mantendrán los permisos, enlaces, usuario, grupo, etc, originales; también hará la copia recursiva (copiará los subdirectorios). La opción -v es para tener un feedback de lo que está sucediendo. Y la opción -P mostrará una barra de progreso de la transferencia y se encargará de los archivos transferidos parcialmente.

5 comentarios en «rsync – Copiar archivos a lo grande»

  1. Muchas gracias por publicar este artículo, me ha servido muchisimo, además que me ha reducido tiempo.

  2. Sabía de el pero recién ahora me toca manejar grabde volumenes de datos,. Gracias.

  3. Muchas gracias. Funciona muy bien.

    Y me surge una duda, ¿porqué unos archivos se copian a una tasa de MB/s rápida y otros lentos, si todos viven en la misma carpeta y son ficheros similares?

  4. Me alegra que sea de utilidad.
    No sé exactamente por qué los archivos se mueven a distinta velocidad. Pero sí sabemos que los archivos no «viven» dentro de la carpeta. La carpeta es una metáfora visual, los archivos están distribuidos por el disco duro en cualquier sitio de la partición, y mas o menos fragmentados; por lo que según la cantidad de fragmentos y la zona del disco en que se hallen, mas la eficiencia del sistema de ficheros en realizar según qué operaciones, determinará la velocidad a la que se copie cada archivo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *