Verwenden Sie rsync --human-readable --progress .
Für einzelne Dateien und Blockgeräte gibt es auch pv . Und wenn Sie wirklich einen genauen Fortschrittsbalken benötigen, versuchen Sie es mit tar mit pv — ungefähr so:
source=/the/source/directory
target=/the/target/directory
size=$(du -sx "$source")
cd "$source"
find . xdev -depth -not -path ./lost+found -print0 \
| tar --create --atime-preserve=system --null --files-from=- \
--format=posix --no-recursion --sparse \
| pv --size ${size}k \
| { cd "$target"; \
tar --extract --overwrite --preserve-permissions --sparse; }
Seien Sie jedoch gewarnt, dass GNU tar unterstützt noch keine ACLs oder erweiterte Attribute, wenn Sie also Dateisysteme kopieren, die mit den Optionen „acl“ oder „xattrs“ gemountet wurden, müssen Sie rsync verwenden (mit dem „--acls " und "--xattrs " Optionen). Persönlich verwende ich:
rsync --archive --inplace --hard-links --acls --xattrs --devices --specials \
--one-file-system --8-bit-output --human-readable --progress /source /target
Prüfen Sie auch, ob Sie den --delete verwenden möchten und/oder --numeric-ids Optionen.
Statt dd Ich würde pv vorschlagen , z. B.:
% tar -cf - INPUT | pv -rbe -s SIZE | tar -xf - -C DEST
Haben Sie rsync -P versucht ? Wenn Sie dd verwenden , z.B. tar -cf - src | dd | (cd dest; tar -xf -) Sie sollten in der Lage sein, Strg-T (SIGINFO) zu verwenden, um Ihren Fortschritt zu sehen.