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 -u
puede que no le importe, ya que solo comprueba las marcas de tiempo, no el tamaño ... Por lo tanto,touch
primero necesitará los archivos de origen si tiene que usarlo . (O simplemente usarrsync
.)Para transferencias de archivos parciales,
cp
puede que no sea lo que necesita.Sugiero usar en su
rsync
lugar. 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
rsync
sincronización y la comprobación después de cada transferencia, garantizar que los archivos se hayan copiado correctamente es trivial.El conjunto swich
-aPEmivvz
es 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
cp
en este caso esrsync
.Simplemente copiando recursivamente una estructura de directorio a una nueva ubicación:
fuente
No deberías usar
cp
para 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 /destination
con cierto nivel de banderas. Vea las otras respuestas para algunos ejemplos realmente buenos.Si quieres tener actualizaciones bidireccionales
unison
Es 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?unison
Si 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
rsync
con las siguientes opciones:fuente