
Estou copiando uma grande quantidade de arquivos entre discos. Existem aproximadamente 16 GB de dados. Gostaria de ver informações sobre o progresso e até mesmo um tempo estimado de conclusãoda linha de comando.
Algum conselho?
Responder1
Usar rsync --human-readable --progress
.
Para arquivos únicos e dispositivos de bloco, também há arquivos pv
. E se você realmente precisa de uma barra de progresso precisa, tente usar tar
com pv — algo assim:
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; }
Esteja avisado, entretanto, que o GNU tar
ainda não suporta ACLs ou atributos estendidos, então se você estiver copiando sistemas de arquivos montados com as opções "acl" ou "xattrs", você precisará usar o rsync (com as opções " --acls
" e " --xattrs
"). Pessoalmente, eu uso:
rsync --archive --inplace --hard-links --acls --xattrs --devices --specials \
--one-file-system --8-bit-output --human-readable --progress /source /target
Verifique também se deseja usar as opções --delete
e/ou --numeric-ids
.
Responder2
Em vez de dd
eu sugeririapv
, por exemplo:
% tar -cf - INPUT | pv -rbe -s SIZE | tar -xf - -C DEST
Responder3
Você tentou rsync -P
? Se você estiver usando dd
, por exemplo, tar -cf - src | dd | (cd dest; tar -xf -)
você poderá usar Ctrl-T (SIGINFO) para ver seu progresso.