Descripción general
`rsync --delete` copia el contenido del directorio de origen al directorio de destino y, al mismo tiempo, elimina los archivos o directorios que existen únicamente en el directorio de destino, logrando una sincronización completa entre ambas ubicaciones. Se utiliza comúnmente en la sincronización de copias de seguridad, despliegue de servidores web y sincronización de entornos de desarrollo.
Características principales
- Sincronización completa de directorios de origen y destino
- Eliminación de archivos/directorios que solo existen en el destino
- Sincronización eficiente mediante transferencia incremental
- Soporte para sincronización remota a través de red
Opciones principales
Opciones principales que se utilizan junto con `rsync --delete`. En particular, la opción `--dry-run` debe usarse siempre primero para prevenir errores críticos.
Control de sincronización
Comando generado:
Combina los comandos.
Descripción:
`rsync-delete` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
`rsync --delete` es una función potente, por lo que es importante verificar siempre los resultados primero usando la opción `--dry-run`.
Vista previa de eliminación (obligatorio)
rsync -avn --delete /path/to/source/ /path/to/destination/
Al sincronizar el directorio de origen (`/path/to/source`) y el directorio de destino (`/path/to/destination`), se previsualiza qué archivos se eliminarán. No se realizan cambios reales.
Sincronización y eliminación real
rsync -av --delete /path/to/source/ /path/to/destination/
Después de verificar la seguridad con la vista previa, se sincronizan realmente el origen y el destino, y se eliminan los archivos que solo existen en el destino. `-a` significa modo archivo y `-v` significa salida detallada.
Sincronizar y eliminar excluyendo archivos/directorios específicos
rsync -av --delete --exclude='logs/' --exclude='*.tmp' /path/to/source/ /path/to/destination/
Elimina archivos en el destino que no existen en el origen, pero excluye ciertos archivos o directorios (por ejemplo, el directorio `logs/` y los archivos `*.tmp`) del proceso de sincronización y eliminación.
Sincronizar y eliminar con un servidor remoto
rsync -av --delete /path/to/local/source/ user@remote_host:/path/to/remote/destination/
Sincroniza el contenido de un directorio local con un directorio en un servidor remoto y elimina los archivos que solo existen en el servidor remoto. La transferencia se realiza de forma segura a través de SSH.
Consejos y precauciones
`rsync --delete` puede ser un comando muy potente y destructivo, por lo que debe tener en cuenta lo siguiente al usarlo:
Precauciones más importantes
- **Siempre use `--dry-run` (-n) primero**: Asegúrese de verificar qué archivos se eliminarán antes de la ejecución real.
- **Verifique las rutas de origen (Source) y destino (Destination)**: Especificar rutas incorrectas puede provocar pérdidas de datos no deseadas.
- **Copia de seguridad esencial**: Siempre realice una copia de seguridad antes de manipular datos importantes.
- **Importancia de la barra inclinada (/)**: Si la ruta de origen termina con una barra inclinada, se copian los 'contenidos' del directorio; si no, se copia el 'directorio en sí'. Esta diferencia es importante cuando se usa con `--delete`.
Diferencia de la barra inclinada (/) en las rutas
La presencia o ausencia de una barra inclinada al final de la ruta de origen cambia el comportamiento.
- `rsync -av --delete source/ dest/`: Copia los *contenidos* del directorio `source` a `dest`, y elimina los archivos que solo existen en `dest`. El directorio `source` en sí no se crea en `dest`.
- `rsync -av --delete source dest/`: Copia el directorio `source` *en sí* dentro del directorio `dest`. Es decir, se crea la ruta `dest/source/`. Si existe otro archivo con el mismo nombre que el directorio `source` en `dest`, podría ser eliminado.