Estoy tratando de copiar un directorio grande de una unidad a otra. Me desconecté por error antes de que terminara, por lo que solo se copió aproximadamente el 80% de los archivos. ¿Hay algún lugar para copiar los archivos restantes sin comenzar desde cero?
23

cp -upuede que no le importe, ya que solo comprueba las marcas de tiempo, no el tamaño ... Por lo tanto,touchprimero necesitará los archivos de origen si tiene que usarlo . (O simplemente usarrsync.)Para transferencias de archivos parciales,
cppuede que no sea lo que necesita.Sugiero usar en su
rsynclugar. Incluso cuando la transferencia falla, simplemente puede volver a ejecutar el comando más adelante y copiará solo los archivos que faltan.Ejemplo:
(se copiará
from/en elto/directorio)Como la
rsyncsincronización y la comprobación después de cada transferencia, garantizar que los archivos se hayan copiado correctamente es trivial.El conjunto swich
-aPEmivvzes mi nivel de go-to de selección, siempre que la copia de archivos a través de redes o unidades externas, incluyendo plug-in de dispositivos, como tarjetas SD, etc.Estos son los interruptores que uso casi siempre:
-a: "archivo", incluye-rlptgo(recursivo, enlaces simbólicos como enlaces simbólicos, permisos, tiempos, grupo, propietario)-P: "progreso parcial" muestra una buena barra de progreso para cada archivo-E: "ejecutabilidad" preservar si es ejecutable o no-m: "noempty" elimina los directorios vacíos-i: resumen de cambios de impresión "resumen" para todas las actualizaciones-vv: "más detallado"-z: "compresión"fuente
Lo que probablemente quieras más que
cpen este caso esrsync.Simplemente copiando recursivamente una estructura de directorio a una nueva ubicación:
fuente
No deberías usar
cppara esto. Como otros han dicho, no es la herramienta adecuada para el trabajo. La herramienta correcta dependerá de tus objetivos.Si solo quieres una copia directa:
rsync /source /destinationcon cierto nivel de banderas. Vea las otras respuestas para algunos ejemplos realmente buenos.Si quieres tener actualizaciones bidireccionales
unisonEs el camino a seguir. Rsync no funciona muy bien en la resolución de conflictos con sincronizaciones bidireccionales. Especialmente elimina. Entonces, ¿quieres que se disparen copias bidireccionales?unisonSi desea copias de seguridad y los archivos están basados en texto, puede intentar usarlos
git. Git se puede ejecutar localmente, no hay necesidad de un "servidor". De hecho, los servidores git son solo métodos para compartir archivos. Podría tener un repositorio git en la unidad de copia de seguridad y "empujarlo". Una vez más, esto solo funciona si los archivos están basados en texto y estás tratando de obtener una copia de seguridad unidireccional.Nuevamente, si vas a hacer una copia de seguridad (y no solo una vez), mira deja-dupe, BackIntime u opciones similares. Toman instantáneas de los datos en un momento determinado. Todos corren rsync debajo del capó.
fuente
También puede copiar todos los archivos nuevamente, solicitar confirmación para cada sobrescritura y luego responder automáticamente no a la pregunta:
(probablemente ha usado más opciones, como
-r, así que agréguelas comocp -pri /source /dest...)fuente
Use el comando
rsynccon las siguientes opciones:fuente