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/to
qui affichera la progression de la copie et reprendra le transfert s'il est déconnecté.
-r
drapeau pour ne pas ignorer les répertoires
Pendant cp
, CtrlTaffiche le pourcentage actuel (sur macOS au moins)
Ctrl-t
envoie des SIGINFO
signaux de la même manière que Ctrl-c
envoie des SIGINT
signaux. Vous pouvez par exemple utiliser une boucle dans un autre shell pour répéter kill -INFO
le 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-t
et SIGINFO
sont 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 ..
strace
commande au moment où cette réponse a été écrite (juillet 2011), mais ce n'est certainement pas le cas aujourd'hui.
rsync
place.