Comando cp com Barra de Progresso

Útil para acompanhar o andamento das cópias via linha de comando.


Comando cp com Barra de Progresso

O comando cp faz parte do GNU CoreUtils e um dos recursos que muita gente queria que fosse implementado seria uma barra de progresso, mas como isso ainda não aconteceu , um programador criou um patch o disponibilizou no GitHub que pode ser implementado ao GNU CoreUtils e você usá-lo!

Instalação

O procedimento é bem simples, basta seguir os passos:

  • 1. Antes de mais nada certifique-se das ferramentas de construção de software no seu computador, exemplo:
sudo apt install gcc g++ make build-essential
  • 2. Baixe o GNU CoreUtils
wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
  • 3. Descompacte
tar xvJf coreutils-8.32.tar.xz

  • 4. Entre no diretório e depois baixe o patch
cd coreutils-8.32/
wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch
  • 5. Aplique o patch
patch -p1 -i advcpmv-0.8-8.32.patch
  • 6. Compile
./configure
make

O binário será criado no diretório src , ou seja coreutils-8.32/src/cp, você pode movê-lo para substituir o cp original com o comando: sudo cp src/cp $(which cp)(cp copia cp 😃 ).

Ou criar um alias(acho mais recomendado):

mkdir -p ~/.local/bin
cp src/cp ~/.local/bin/cp
echo 'alias cp="${HOME}/.local/bin/cp"' >> ~/.bashrc
exec $SHELL

E testar, exemplo:

Use o parâmetro --progress-bar

cp --progress-bar Documentos/Fedora-Workstation-Live-x86_64-33-1.2.iso .
copying at 111,2 MiB/s (about 0h 0m 23s remaining)
Documentos/Fedora-Workstation-Live-x86_64-33-1.2.iso                   340,9 MiB /   1,9 GiB
[===============================>

Se quiser evitar de ficar usando esse parâmetro, já crie o alias com o parâmetro, exemplo:

vim ~/.bashrc e deixe o alias nesse arquivo assim:

alias cp="${HOME}/.local/bin/cp --progress-bar"

Feche, execute source ~/.bashrc e teste sem o parâmetro, o mesmo será incluso automaticamente:

cp Documentos/Fedora-Workstation-Live-x85_64-33-1.2.iso .
copying at 111,2 MiB/s (about 0h 0m 23s remaining)
Documentos/Fedora-Workstation-Live-x86_64-33-1.2.iso                   340,9 MiB /   1,9 GiB
[===============================>

O mesmo pode ser usado para o comando mv que também ficará em src, no entanto, dê preferência para o parâmetro -g em vez do --progress-bar, é mais simples! Mas sinceramente não vejo utilidade em usar isso no mv até porque as coisas são movidas de maneiras tão rápida que nem precisa disso.

Por hoje é só!


gnu comandos terminal


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!