Comando de copia Unix que tiene una barra de progreso, pero no tan pesado como rsync

14

Necesito copiar muchos archivos. Usualmente uso rsync porque le paso las -aPopciones y puedo ver (a) cuántos archivos quedan por procesar y (b) cuánto de cada archivo individual se copia.

Sin embargo, rsync también hace muchas cosas con sumas de verificación para verificar que se haya copiado un archivo. Sin embargo, realmente no necesito eso ahora. Pero normal cpno incluye el recuento de archivos mencionado anteriormente, lo cual es muy útil.

¿Hay algo así cpque incluye el progreso de cuántos archivos quedan, pero no es tan pesado como rsync?

Rory
fuente

Respuestas:

21

Puede ejecutar rsync con el modificador -W, que deshabilitará las sumas de verificación.

Stefan Wolff
fuente
6

Entonces, ¿es este un alias adecuado para sus sugerencias?

cp_p() {
    rsync -WavP $1 $2
}

-W -no use el algoritmo de transferencia delta
-a modo de archivo
-v detallado
-P muestra la barra de progreso y retiene archivos parciales

Otra alternativa que encontré en algunos lugares . requiere paquete pv (pipeviewer) sin embargo.

cp_pv() {
    pv -per $1 > $2
}

-p muestra progreso
-e muestra eta
-r muestra velocidad
-n muestra salida numérica

/ edit Ahora he probado los alias anteriores y puedo confirmar que funcionan. Hubo algunos errores tipográficos antes

Vijay
fuente
Esto parece admitir solo la copia de un archivo en un archivo con nombre en lugar de un directorio. ¿Qué pasa si quiero copiar múltiples archivos? O un directorio?
einpoklum
Bueno, estos son solo alias, por lo que puede experimentar con los comandos sin procesar en el interior para ver qué funciona para usted. Estoy seguro de que rsync admite directorios y otras designaciones de ruta. Puede personalizar fácilmente los alias para que funcione para su situación específica. Comparte si lo haces funcionar. IIRC Lo he usado con directorios antes sin ningún problema.
Vijay
3

puede simplemente golpear la opción -v en el cmd cp o usar scp para el host local

egorgry
fuente
la -v es un buen comienzo, y es bastante útil, pero me gustaría obtener más información sobre exactamente cuántos archivos permanecen / han sido copiados / etc
Rory
2
Entonces quieres la solución de Stefan Wolff.
egorgry
1

Es excesivo con la sobrecarga de cifrado, pero puede usar scplocalmente:

scp <file-from> <file-to>

Mostrará el progreso durante la copia.

madriguera
fuente
Al menos en OSX, scpno muestra ninguna barra de progreso de forma predeterminada, ya que se utiliza cpdebajo del capó cuando se trata de archivos locales.
Sridhar Ratnakumar
1

gcpEs la buena herramienta. Aquí tiene el paquete PyPI , pero también se puede encontrar en el paquete de distribución (por ejemplo, en debian / ubuntu apt-get install gcp hacer el trabajo).

También hay un buen artículo tutorial sobre gcp .

$ gcp -r Solaar / solaar2

Copiando 7.53 MiB 100% | ############################# | 134.92 M / s Hora: 00:00:00
spinus
fuente