53 votes

Comment créer une barre de progression lors de la copie d'un répertoire avec cp ?

Je suppose que je pourrais comparer le nombre de fichiers dans le répertoire source au nombre de fichiers dans le répertoire cible au fur et à mesure que cp progresse, ou peut-être le faire avec la taille du dossier à la place ? J'ai essayé de trouver des exemples, mais toutes les barres de progression bash semblent être écrites pour copier des fichiers uniques. Je veux copier un tas de fichiers (ou un répertoire, si le premier n'est pas possible).

72voto

SteveLambert Points 165

Vous pouvez également utiliser rsync au lieu de cp comme ceci :

rsync -Pa source destination

Ce qui vous donnera une barre de progression et une estimation du temps d'achèvement. Très utile.

4voto

Thomas Berger Points 1248

Voici une autre solution : Utilisez l'outil bar

Vous pouvez l'invoquer comme ceci :

 #!/bin/bash
filesize=$(du -sb ${1} | awk '{ print $1 }')
tar -cf - -C ${1} ./ | bar --size ${filesize} | tar -xf - -C ${2}

Vous devez passer par le goudron, et ce sera inexact sur les petits fichiers. Vous devez également veiller à ce que le répertoire cible existe. Mais c'est un moyen.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X