Estoy confundido con el funcionamiento de rsync. Esto es lo que hice y esperaba.
Creé dos carpetas llamadas 'sbck' y 'dbck'.
Escenario 1:
Creé un archivo llamado a.txt
y creé una copia usando cp -rp a.txt aa.txt
. Coloqué ambos archivos en sbck
la carpeta. Lo siguiente que hice rsync -rvch sbck/ dbck/
. Esto movió ambos archivos a dck.
Pregunta: Dado que tanto a.txt como aa.txt son iguales, ¿por qué rsync permite esta copia? ¿No debería ser sólo uno de los dos?
Escenario 2:
Creé un archivo llamado a.txt
y creé una copia usando cp -rp a.txt aa.txt
. Coloqué ambos archivos en sbck
la carpeta. A continuación lo hice cp -rp sbck/a.txt dbck/
. Más tarde lo hice rsync -rvch sbck/ dbck/
. Esto movió el aa.txt
archivo a dck.
Pregunta: Dado que tanto a.txt como aa.txt son iguales, y ya moví a.txt a dbck. ¿Por qué rsync permite la copia de aa.txt a dbck? ¿Cómo me ayuda exactamente -c en este escenario?
Respuesta1
Creo que no estás entendiendo bien lo -c
que significa. rsync
no realiza deduplicación de archivos, con o sin la -c
opción. Todo -c
lo que hace es cambiar la forma en que rsync
decide si un archivo necesita actualizarse en el destino.
Supongamos sbck/a.txt
que y dbck/a.txt
ejecuta rsync -rvh sbck/ dbck/
(nota: no hay -c
opción). Lo que rsync
hace es comparar el tamaño y el tiempo de modificación de esos dos archivos y, si coinciden, asumirá que el contenido de los archivos también coincide y no se molestará en copiarlos sbck/a.txt
a dbck/a.txt
.
Ahora, supongamos que corres rsync -rvch sbck/ dbck/
(con -c
este tiempo). Esta vez, rsync
calculará las sumas de verificación de sbck/a.txt
y dbck/a.txt
y las usará (en lugar de su tamaño y tiempos de modificación) para determinar si los archivos son iguales y, por lo tanto, sbck/a.txt
no es necesario copiar el nuevo contenido de dbck/a.txt
. No compara la suma de comprobación sbck/a.txt
con la de ningún otro archivo ni en el árbol de origen ni en el de destino.