o una pieza de software que haría la copia por mí y confirmaría que todos los bits son exactamente iguales.
Esto es lo que hace rsync . Puede copiar un archivo, árboles completos de archivos, prácticamente cualquier cosa. Y lo hace con un algoritmo confiable. Al final de un rsync puede estar seguro de que el receptor recibió exactamente lo que envió desde la fuente.
Hay una GUI para rsync llamada arRsync que puede hacer que trabajar con él sea un poco más amigable, aunque no funciona para llamadas rsync-over-ssh.
La otra ventaja de rsync es que puede hacer una copia de reanudar en interrupción. Particularmente bueno si está copiando muchos archivos o incluso archivos grandes a través de redes que no son confiables.
Si está copiando una unidad local y una red que están disponibles para la misma Mac, puede hacer lo siguiente:
rsync -avz /Volumes/LocallyAttachedDrive/path/to/big-movie.mov /Volumes/RemoteShare/path/
Y ya terminaste.
Si es un directorio (qué paquetes .app
son), puede hacer una copia completa y recursiva con:
rsync -avz /Volumes/LocallyAttachedDrive/path/to/my-bundle.app /Volumes/RemoteShare/path/
Si no tiene acceso de nivel Finder / Bonjour al fregadero, puede hacer rsync-over-ssh:
rsync -avz /Volumes/LocallyAttachedDrive/path/to/my-bundle.app remoteuser@remotehost:/Volumes/RemoteShare/path/
Se puede generar una clave compartida para que no tenga que ingresar una contraseña si lo desea.
Editar: puede usar rsync
para verificar si dos árboles son iguales con la --dry-run/-n
opción. Si tengo el árbol fuente /Volumes/dir
y lo he copiado, /Volumes/ConnectedDrive/dir
puedo compararlos con:
rsync -acvn /Volumes/dir /Volumes/ConnectedDrive/
La salida me dirá si es necesario copiar algún archivo en el receptor para que el receptor sea igual a la fuente.
Por ejemplo, si sincronizo dos árboles:
> rsync -avz ./8779 ./a/
building file list ... done
8779/
8779/.DS_Store
8779/logs/
8779/logs/MasterLog.txt
8779/logs/StartLog.txt
sent 893980 bytes received 98 bytes 596052.00 bytes/sec
total size is 10034671 speedup is 11.22
Compararlos por igualdad no debería generar operaciones:
> rsync -acvn ./8779 ./a/
building file list ... done
sent 213 bytes received 20 bytes 155.33 bytes/sec
total size is 10034671 speedup is 43067.26
Si el sumidero fuera ligeramente diferente, veríamos resultados como este:
> echo foo >> a/8779/logs/MasterLog.txt
> rsync -acvn ./8779 ./a/
building file list ... done
8779/logs/MasterLog.txt
sent 219 bytes received 26 bytes 490.00 bytes/sec
total size is 10034671 speedup is 40957.84
Ahora sabemos que el MasterLog.txt
archivo no es el mismo.
/
importa en rsync. Probar:rsync -avcn /Volumes/dir /Volumes/ConnectedServer/
Eso debería hacer el truco. Ampliaré mi respuesta con más detalles.imprimirá los hashes de ambos archivos para que pueda compararlos con los ojos. El indicador -r imprime los hashes primero (en lugar del nombre del archivo primero) para que los hashes se alineen entre sí en el margen izquierdo, lo que facilita la comparación visual.
fuente
shasum -a 256 /path/to/file
Me quedaría con MD5 si necesita una verificación absoluta de que los archivos son los mismos. Podría escribir un pequeño script bash para repetir los directorios y generar / verificar el hash para cada archivo.
fuente