¿Es posible verificar el progreso de la ejecución del proceso cp? Algunos procesos responden a varias señales KILL para que puedas comprobar cuál es su estado. Sé que puedo ejecutar cp con el parámetro -v, pero ¿qué pasa si olvidé hacerlo? cp se está ejecutando durante mucho tiempo y quiero saber qué archivo se está copiando o cuántos ya se copiaron.
Respuesta aceptada:
Sí, al ejecutar stat en el archivo de destino y el archivo local y obtener un tamaño de archivo,
es decir, stat -c "%s" /bin/ls
Y obtienes el porcentaje de datos copiados comparando los dos valores, eso es todo
En una implementación muy básica que se verá así:
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
}