Utilisez rsync --human-readable --progress
.
Pour les fichiers uniques et les périphériques de bloc, il y a aussi pv
. Et si vous avez vraiment besoin d'une barre de progression précise, essayez d'utiliser tar
avec pv — quelque chose comme ceci :
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; }
Soyez averti, cependant, que GNU tar
ne prend pas encore en charge les ACL ou les attributs étendus, donc si vous copiez des systèmes de fichiers montés avec les options "acl" ou "xattrs", vous devez utiliser rsync (avec le "--acls
" et "--xattrs
" options). Personnellement, j'utilise :
rsync --archive --inplace --hard-links --acls --xattrs --devices --specials \
--one-file-system --8-bit-output --human-readable --progress /source /target
Vérifiez également si vous souhaitez utiliser le --delete
et/ou --numeric-ids
options.
Au lieu de dd
Je suggérerais pv
, par exemple :
% tar -cf - INPUT | pv -rbe -s SIZE | tar -xf - -C DEST
Avez-vous essayé rsync -P
? Si vous utilisez dd
, par exemple. tar -cf - src | dd | (cd dest; tar -xf -)
vous devriez pouvoir utiliser Ctrl-T (SIGINFO) pour voir vos progrès.