Usa rsync --human-readable --progress
.
Per singoli file e dispositivi a blocchi c'è anche pv
. E se hai davvero bisogno di una barra di avanzamento precisa, prova a utilizzare tar
con pv — qualcosa del genere:
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; }
Tieni presente, tuttavia, che GNU tar
non supporta ancora ACL o attributi estesi, quindi se stai copiando filesystem montati con le opzioni "acl" o "xattrs", devi usare rsync (con il "--acls
" e "--xattrs
" opzioni). Personalmente, utilizzo:
rsync --archive --inplace --hard-links --acls --xattrs --devices --specials \
--one-file-system --8-bit-output --human-readable --progress /source /target
Controlla anche se vuoi usare il --delete
e/o --numeric-ids
opzioni.
Invece di dd
Suggerirei pv
, ad esempio:
% tar -cf - INPUT | pv -rbe -s SIZE | tar -xf - -C DEST
Hai provato rsync -P
? Se stai usando dd
, per esempio. tar -cf - src | dd | (cd dest; tar -xf -)
dovresti essere in grado di usare Ctrl-T (SIGINFO) per vedere i tuoi progressi.