Movendo arquivos no Linux enquanto mostra o progresso

Uma das coisas que as vezes ficamos na dúvida é quando iniciamos um comando para mover arquivos ou pastas no Linux e não sabemos ao certo quanto tempo vai demorar, principalmente quando são pastas ou arquivos grandes.

O comando mv é a ferramenta mais usada para mover arquivos no Linux. No entanto, por padrão, ele não tem a capacidade de mostrar o progresso ao usuário. Às vezes, quando movemos arquivos muito grandes, precisamos de algum tipo de indicador que possamos usar para acompanhar o progresso da operação de movimentação.

Vou deixar uma dica aqui para mover arquivos e ver seu progresso em um terminal usando diversas alternativas ao comando mv do Linux.

progress é uma ferramenta UNIX que nos permite monitorar o progresso de uma operação de cópia ou movimentação. Normalmente, usamos para mover um arquivo ou diretório e, em seguida, usamos o progress em outro terminal para monitorar o progresso.

Instalação

Debian / Ubuntu

apt install progress

RHEL / Oracle Linux / Fedora / CentOS

yum install progress

Arch e seus derivados:

pacman -S progress

Um exemplo de uma pasta sendo movida

$ mv ~/.cache /tmp

Abra uma outra sessão do terminal e digite o comando progress para acompanhar o progresso.

$ progress
[ 5187] mv /home/dias/.cache/paru/clone/android-studio/android-studio-2020.3.1.26-linux.tar.gz
	0.0% (0 / 935.2 MiB)

Para monitorar o progresso utilize com o parâmetro -mw

$ [ 5251] mv /home/hey/.cache/paru/clone/amdgpu-pro-installer/amdgpu-pro-21.30-1290604-ubuntu-20.04.tar.xz
	35.31% (241.3 / 683.2 MiB) 0/s
Rolar para cima