Est-il possible d'afficher une barre de progression lors de la copie de fichiers dans Terminal à l'aide de cp?
Est-il possible d'afficher une barre de progression lors de la copie de fichiers dans Terminal à l'aide de cp?
Réponses:
Vous pouvez utiliser rsync à la place.
rsync --progress /copy/from /copy/to
rsync -P /copy/from /copy/toéquivaut à celle rsync --partial --progress /copy/from /copy/toqui affichera la progression de la copie et reprendra le transfert s'il est déconnecté.
-rdrapeau pour ne pas ignorer les répertoires
Pendant cp, CtrlTaffiche le pourcentage actuel (sur macOS au moins)
Ctrl-tenvoie des SIGINFOsignaux de la même manière que Ctrl-cenvoie des SIGINTsignaux. Vous pouvez par exemple utiliser une boucle dans un autre shell pour répéter kill -INFOle processus en question si vous ne voulez pas continuer à appuyer sur les touches. Parce que c'est un signal, il fonctionne également avec d'autres utilitaires, par exemple dd. Ctrl-tet SIGINFOsont hérités de BSD.
Si vous copiez des fichiers ou des répertoires volumineux à l'aide de cp, vous pouvez ouvrir «Moniteur d'activité», allez dans l'onglet «Disque» et recherchez le processus «cp». Ici, vous pouvez garder une trace du nombre d'octets écrits depuis le dernier démarrage, vous donnant une idée approximative de la progression. (OS X 10.10).
J'espère que ça t'as aidé!
#!/bin/sh
strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
| awk '{
count += $NF
if (count % 10 == 0) {
percent = count / total_size * 100
printf "%3d%% [", percent
for (i=0;i<=percent;i++)
printf "="
printf ">"
for (i=percent;i<100;i++)
printf " "
printf "]\r"
}
}
END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
Ce n'est pas parfait, mais cela fonctionne ... déposez-le dans un chemin de répertoire et nommez-le quelque chose de similaire ..
stracecommande au moment où cette réponse a été écrite (juillet 2011), mais ce n'est certainement pas le cas aujourd'hui.
rsyncplace.