Agregue una barra de progreso a los comandos de Linux usando la copia avanzada

El comando cp en Linux es un programa muy bueno que se usa para copiar archivos y directorios de una ubicación a otra. De manera similar, el comando mv se puede usar para mover y renombrar archivos de una ubicación a otra. Ambos comandos son parte de GNU CoreUtils y están disponibles en todas las distribuciones de Linux.

Sin embargo, estos comandos carecen de algunas características que, aunque no son un gran problema, los desarrolladores pueden implementar fácilmente.

Una de esas características es una barra de progreso.

A menos que use el indicador detallado (-v) con estos comandos, no hay otra forma de saber cuánto ha progresado su transferencia. E incluso la opción detallada puede ser un verdadero desastre si tiene que mover muchos archivos.

La copia avanzada es un mod para los comandos GNU cp y mv, que simplemente agrega una barra de progreso a todas las transferencias realizadas por ellos. En este tutorial, le mostraré cómo instalar y usar la herramienta avanzada de copiar y mover en su sistema, y ​​también crearé un bash alias para facilitar su uso.

Instalación de copia avanzada

Esta herramienta no está disponible en ningún repositorio de la distribución de Linux, por lo que tendremos que compilarla desde el código fuente. Sólo asegúrese de tener la curl y parche comando instalado en su sistema (y si no está instalado, puede instalarlo usando el administrador de paquetes de su distribución) y ejecute el siguiente script desde su Terminal:

                      
curl https://raw.githubusercontent.com/jarun/advcpmv/master/install.sh --create-dirs -o ./advcpmv/install.sh && (cd advcpmv && sh install.sh)

                    
El script instalará automáticamente el comando Advcp

Si encuentra algún error con respecto a la ejecución de este comando sin privilegios de root, primero puede ejecutar el siguiente comando antes de compilar desde el script:

                      
export FORCE_UNSAFE_CONFIGURE=1

                    

Ajustes y uso

Los comandos se agregaron en el directorio ./advcpv, que no se agrega a nuestro $PATH. Puede agregar este directorio a $PATH o simplemente mover los archivos al directorio /usr/local/bin. Puede hacerlo escribiendo los siguientes comandos:

                      
sudo mv ~/advcpmv/advcp /usr/local/bin/cpg
sudo mv ~/advcpmv/advmv /usr/local/bin/mvg

                    
Mover los comandos en el directorio Bin

Finalmente, puede agregar bash alias en su archivo Bashrc para que el terminal siempre use los archivos advmv y advcp en lugar de mv y cp respectivamente. Tipo:

                      
echo alias cp=''/usr/local/bin/advcp -g' >> ~/.bashrc'
echo alias mv=''/usr/local/bin/advmv -g' >> ~/.bashrc'

                    
Hacer alias de terminal para un mejor uso Hacer alias de terminal para un mejor uso

El segundo comando en esta captura de pantalla le dice al terminal que lea todas las configuraciones que hemos establecido en el archivo bashrc. Sin embargo, no tiene que escribir el comando, simplemente puede close su Terminal y vuelva a abrirlo. Finalmente, intente mover o copiar un archivo como lo hace normalmente.

La barra de progreso ahora es visible mientras se copia un archivo La barra de progreso ahora es visible mientras se copia un archivo

Si desea copiar/mover un directorio de forma recursiva, puede usar el indicador -R junto con el comando como este:

                      
advcp -gR path/to/source /path/to/destination

                    
Copia de directorios mediante copia avanzada Copia de directorios mediante copia avanzada

Si no encuentra útiles estos comandos, siempre puede eliminar el /usr/local/advcp y /usr/local/advmv archivos para desinstalar Advanced Copy. También puedes llamar al original c.p. y m.v. comandos escribiendo /usr/bin/cp y /usr/bin/mv .

Resumen

La copia avanzada parece ser una extensión increíble para los comandos cp y mv. Y es realmente triste que la función de la barra de progreso no se transfiera a los comandos cp y mv porque el equipo de GNU coreutils siente que los comandos cp y mv están completos.

También siento que agregar este comando en los repositorios oficiales le dará a la gente más exposición, ya que no todos lo compilarán desde el código fuente solo para mostrar una barra de progreso. También tenga en cuenta que el script mencionado anteriormente no agrega ninguna documentación por sí mismo en el comando ‘man’, por lo que debe confiar en la entrada manual del comando cp o mv o consultar su página de GitHub para obtener más información al respecto.

Referencias

Copia avanzada: repositorio ADVCP GitHub

Related Posts