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!
O procedimento é bem simples, basta seguir os passos:
sudo apt install gcc g++ make build-essential
wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz
tar xvJf coreutils-8.32.tar.xz
cd coreutils-8.32/
wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch
patch -p1 -i advcpmv-0.8-8.32.patch
./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 , é mais simples! Mas sinceramente não vejo utilidade em usar isso no --progress-bar
mv
até porque as coisas são movidas de maneiras tão rápida que nem precisa disso.
Por hoje é só!