Ist es möglich, einen Fortschrittsbalken anzuzeigen, wenn Dateien mit cp in Terminal kopiert werden?
Ist es möglich, einen Fortschrittsbalken anzuzeigen, wenn Dateien mit cp in Terminal kopiert werden?
Antworten:
Sie können stattdessen rsync verwenden.
rsync --progress /copy/from /copy/to
rsync -P /copy/from /copy/towird rsync --partial --progress /copy/from /copy/toder Fortschritt des Kopiervorgangs angezeigt und die Übertragung fortgesetzt, wenn die Verbindung unterbrochen wird.
-rFlagge, damit Verzeichnisse nicht übersprungen werden
Während cp, CtrlTzeigt den aktuellen Prozentsatz an (mindestens unter macOS)
Ctrl-tsendet SIGINFOSignale in der gleichen Weise, Ctrl-csendet SIGINTSignale. Sie können z. B. eine Schleife in einer anderen Shell verwenden, um kill -INFOden betreffenden Prozess wiederholt auszuführen, wenn Sie die Tasten nicht gedrückt halten möchten. Da es sich um ein Signal handelt, funktioniert es auch mit anderen Dienstprogrammen, z dd. Ctrl-tund SIGINFOwerden von BSD geerbt.
Wenn Sie große Dateien oder Verzeichnisse mit cp kopieren, können Sie 'Activity Monitor' öffnen, zur Registerkarte 'Disk' wechseln und nach dem Prozess 'cp' suchen. Hier können Sie nachverfolgen, wie viele Bytes seit dem letzten Start geschrieben wurden, um eine ungefähre Vorstellung vom Fortschritt zu erhalten. (OS X 10.10).
Hoffentlich hilft das!
#!/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
Es ist nicht perfekt, aber es funktioniert ... legen Sie es in einem Verzeichnispfad ab und nennen Sie es etwas Ähnliches.
stracezu dem Zeitpunkt, als diese Antwort geschrieben wurde (Juli 2011), einen Befehl hatte, aber heute definitiv nicht.
rsyncstattdessen auch die Verwendung in Betracht ziehen .