Aqui estão alguns comandos para copiar diretórios com informações de progresso.
Se houver muitos arquivos pequenos:
cp -av sourcedir targetdir | pv -l -s filecount > logfile
Isso relatará o progresso com base no número de arquivos que são copiados.
Você pode redirecionar para /dev/nullse não precisar logfile.
Use o seguinte comando para obter filecount:
find sourcedir | wc -l
Se houver alguns arquivos enormes:
tar c sourcedir | pv -s size | tar x -C targetdir
Isso relatará o progresso com base nos bytes que são copiados.
targetdir deve existir.
Use o seguinte comando para obter size:
du -sh sourcedir
Se você deseja usar o rsync:
rsync -ai sourcedir/ targetdir/ | pv -l -s filecount > logfile
Obtenha filecountcomo mostrado acima.
Se você estiver copiando no mesmo sistema, rsync -aé praticamente o mesmo que cp -a. As vantagens do rsync são quando você está copiando pela rede ou se está atualizando (ou comparando) uma cópia anterior.
Veja aqui para mais detalhes: