Cópia de arquivo Linux com ETA?

Cópia de arquivo Linux com ETA?

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 tarcom 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 tarainda 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 --deletee/ou --numeric-ids.

Responder2

Em vez de ddeu 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.

informação relacionada