rsync permite copiar y sincronizar directorios de forma eficiente, conservando permisos, marcas de tiempo, enlaces simbólicos y estructura de rutas. Es una herramienta especialmente útil cuando necesitas enviar todo un directorio pero dejando fuera rutas concretas, como archivos sensibles, artefactos de compilación o dependencias pesadas.
<aside>
⭐
En entornos reales, valida siempre las exclusiones antes de ejecutar la sincronización, especialmente si el destino contiene datos importantes o si vas a usar --delete.
</aside>
Cuando quieres desplegar un proyecto, respaldar una carpeta o sincronizar contenido entre equipos, rsync te permite copiar casi todo el directorio y excluir elementos puntuales sin tener que preparar una lista manual de archivos.
Ejemplos comunes de exclusión:
.envnode_modules.gitdist, build o targetPara enviar todo el directorio salvo algunas rutas:
rsync -avz \
--exclude='.env' \
--exclude='node_modules' \
./ usuario@host:/ruta/destino/
| Opción | Descripción |
|---|---|
-a |
Modo archivo: conserva permisos, tiempos, enlaces simbólicos, propietarios, grupos y estructura. |
-v |
Muestra información detallada durante la transferencia. |
-z |
Comprime los datos durante el envío para reducir tráfico. |
--exclude='.env' |
Excluye el archivo .env. |
--exclude='node_modules' |
Excluye la carpeta node_modules. |
<aside>
✅
-a equivale aproximadamente a -rlptgoD, por lo que suele ser la opción base más cómoda para sincronizaciones completas.
</aside>