Inicio > Gestión de archivos y directorios > rsync-delete

rsync --delete: Eliminar archivos de destino sincronizando con el origen

La opción `--delete` del comando `rsync` proporciona la funcionalidad de eliminar archivos en el directorio de destino que no existen en el directorio de origen al sincronizar ambos. Esto es útil cuando se desea que el directorio de destino coincida exactamente con el origen durante copias de seguridad o replicación. Dado que es una función potente, se requiere especial precaución en su uso.

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.

Comandos de la misma categoría