Comando de copia avanzada: muestra la barra de progreso al copiar archivos / carpetas grandes en Linux


Advanced-Copy es un poderoso programa de línea de comandos que es muy similar, pero una versión poco modificada del comando cp original. Esta versión modificada del comando cp agrega una barra de progreso junto con el tiempo total necesario para completar, mientras se copian archivos grandes de una ubicación a otra. Esta característica adicional es muy útil, especialmente al copiar archivos grandes, y esto le da una idea al usuario sobre el estado del proceso de copia y cuánto tarda en completarse.

Descargue e instale Advanced-Copy

Hay dos métodos para instalar la utilidad Advanced-Copy en sistemas Linux, ya sea compilando a partir de fuentes o usando binarios precompilados. La instalación desde binarios precompilados siempre debería funcionar correctamente y requiere menos experiencia y es muy eficaz para los principiantes de Linux.

Pero le sugiero que compile a partir de fuentes, para esto necesitaba la versión original de GNU coreutils y el último archivo de parche de Advacned-Copy. Toda la instalación debería ser así:

Primero, descargue la última versión de GNU coreutils y patchfile usando el comando wget y compílelo y parcheelo como se muestra a continuación, debe ser usuario root para ejecutar todos los comandos.

# wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz
# tar xvJf coreutils-8.21.tar.xz
# cd coreutils-8.21/
# wget https://raw.githubusercontent.com/atdt/advcpmv/master/advcpmv-0.5-8.21.patch
# patch -p1 -i advcpmv-0.5-8.21.patch
# ./configure
# make

Es posible que obtenga el siguiente error mientras ejecuta el comando "./configure".

checking whether mknod can create fifo without root privileges... configure: error: in `/home/tecmint/coreutils-8.21':
configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
See `config.log' for more details

Ejecute el siguiente comando en la terminal para corregir ese error y vuelva a ejecutar el comando "./configure".

export FORCE_UNSAFE_CONFIGURE=1

Una vez que se completa la compilación, se crean dos nuevos comandos en src/cp y src/mv. Necesita reemplazar sus comandos cp y mv originales con estos dos nuevos comandos para obtener la barra de progreso mientras copia archivos.

# cp src/cp /usr/local/bin/cp
# cp src/mv /usr/local/bin/mv

Nota: Si no desea copiar estos comandos en las rutas del sistema estándar, aún puede ejecutarlos desde el directorio de origen como "./cp" y "./mv o crear nuevos comandos como se muestra".

# mv ./src/cp /usr/local/bin/cpg
# mv ./src/mv /usr/local/bin/mvg

Barra de progreso automática

Si desea que la barra de progreso aparezca todo el tiempo mientras copia, debe agregar las siguientes líneas a su archivo ~/.bashrc. Guarde y cierre el archivo

alias cp='cp -gR'
alias mv='mv -g'

Debe cerrar la sesión y volver a iniciar sesión para que esto funcione correctamente.

Cómo utilizar el comando Advacned-Copy

El comando es el mismo, el único cambio es agregar la opción “-g” o “–progress-bar” con el comando cp. La opción "-R" es para copiar directorios de forma recursiva. Aquí hay un ejemplo de capturas de pantalla de un proceso de copia usando el comando de copia avanzado.

# cp -gR /Tecmint.com/ /data/

OR

# cp -R --progress-bar /Tecmint.com/ /data/

Este es el ejemplo del comando "mv" con captura de pantalla.

# mv --progress-bar Songs/ /data/

OR

# mv -g Songs/ /data/

Recuerde que los comandos originales no se sobrescriben si alguna vez necesita usarlos o si no está satisfecho con la nueva barra de progreso y desea volver a los comandos originales cp y mv. Puede llamarlos a través de/usr/bin/cp o/usr/bin/mv.

Realmente me impresionó mucho esta nueva función de barra de progreso, al menos sabría algo de información sobre el tiempo de operación de la copia y exactamente lo que está sucediendo.

En general, puedo decir que es una herramienta muy buena para tener en el bolsillo, especialmente cuando pasa mucho tiempo copiando y moviendo archivos a través de la línea de comandos.