Sincronización de directorios con exclusiones

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>


Caso de uso típico

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:


Ejemplo básico

Para enviar todo el directorio salvo algunas rutas:

rsync -avz \
  --exclude='.env' \
  --exclude='node_modules' \
  ./ usuario@host:/ruta/destino/

Qué hace cada opción

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>