Respuestas:
Lo intentaré,
rsync -a /from/file /dest/file
puede utilizar otras opciones como --append
, -P (--partial --progress)
. Ver man rsync para más información.
O si está usando, cp
entonces use cp -u
.
de man cp
:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
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 usar rsync
.)
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:
$ rsync -aPEmivvz from/ to/
(se copiará from/
en el to/
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"
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ó.