Ist es möglich, den Fortschritt des laufenden cp-Prozesses zu überprüfen? Einige Prozesse reagieren auf verschiedene KILL-Signale, sodass Sie ihren Status überprüfen können. Ich weiß, dass ich cp mit dem Parameter -v ausführen kann, aber was ist, wenn ich das vergessen habe, cp läuft sehr lange und ich möchte wissen, welche Datei kopiert wird oder wie viele bereits kopiert wurden.
Akzeptierte Antwort:
Ja, indem Sie stat auf die Zieldatei und die lokale Datei ausführen und eine Dateigröße abrufen,
d.h. stat -c "%s" /bin/ls
Und Sie erhalten den Prozentsatz der kopierten Daten, indem Sie die beiden Werte vergleichen, das war's
In einer sehr einfachen Implementierung sieht das so aus:
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
}