Est-il possible de vérifier la progression de l'exécution du processus cp ? Certains processus répondent à divers signaux KILL afin que vous puissiez vérifier quel est leur statut. Je sais que je peux exécuter cp avec le paramètre -v mais que se passe-t-il si j'ai oublié de le faire, cp fonctionne depuis très longtemps et je veux savoir quel fichier est copié, ou combien ont déjà été copiés.
Réponse acceptée :
Oui, en exécutant stat sur le fichier cible et le fichier local, et obtenir une taille de fichier,
c'est-à-dire stat -c "%s" /bin/ls
Et vous obtenez le pourcentage de données copiées en comparant les deux valeurs, c'est tout
Dans une implémentation très basique qui ressemblera à ceci :
function cpstat()
{
local pid="${1:-$(pgrep -xn cp)}" src dst
[[ "$pid" ]] || return
while [[ -f "/proc/$pid/fd/3" ]]; do
read src dst < <(stat -L --printf '%s ' "/proc/$pid/fd/"{3,4})
(( src )) || break
printf 'cp %d%%r' $((dst*100/src))
sleep 1
done
echo
}