Použijte rsync --human-readable --progress
.
Pro jednotlivé soubory a bloková zařízení existuje také pv
. A pokud skutečně potřebujete přesný ukazatel průběhu, zkuste použít tar
s pv — něco takového:
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; }
Upozorňujeme však, že GNU tar
zatím nepodporuje ACL ani rozšířené atributy, takže pokud kopírujete souborové systémy připojené pomocí voleb "acl" nebo "xattrs", musíte použít rsync (s "--acls
“ a „--xattrs
"). Osobně používám:
rsync --archive --inplace --hard-links --acls --xattrs --devices --specials \
--one-file-system --8-bit-output --human-readable --progress /source /target
Zvažte také, zda chcete použít --delete
a/nebo --numeric-ids
možnosti.
Místo dd
Navrhoval bych pv
, např.:
% tar -cf - INPUT | pv -rbe -s SIZE | tar -xf - -C DEST
Zkusili jste rsync -P
? Pokud používáte dd
, např. tar -cf - src | dd | (cd dest; tar -xf -)
měli byste být schopni použít Ctrl-T (SIGINFO), abyste viděli svůj postup.