Comando de cópia do Unix que possui uma barra de progresso, mas não tão pesada quanto o rsync

14

Eu preciso copiar muitos arquivos. Normalmente eu uso o rsync porque passo as -aPopções e posso ver (a) quantos arquivos restam para processar e (b) quanto de cada arquivo individual é copiado.

No entanto, o rsync também faz muitas coisas com somas de verificação para verificar se um arquivo foi copiado. No entanto, eu realmente não preciso disso agora. Mas o normal cpnão inclui a contagem de arquivos restantes acima mencionada, o que é muito útil.

Existe algo assim cpque inclui o progresso de quantos arquivos restam , mas não é tão pesado quanto rsync?

Rory
fonte

Respostas:

21

Você pode executar o rsync com a opção -W, que desativará as somas de verificação.

Stefan Wolff
fonte
6

Portanto, este é um alias adequado para suas sugestões?

cp_p() {
    rsync -WavP $1 $2
}

-W -não use o algoritmo de transferência delta
-um modo de arquivo
-v detalhado
-P mostre a barra de progresso e retenha os arquivos parciais

outra alternativa que encontrei em alguns lugares . requer o pacote pv (pipeviewer).

cp_pv() {
    pv -per $1 > $2
}

-p mostra progresso
-e mostra eta
-r mostra taxa
-n mostra saída numérica

/ edit Agora testei os aliases acima e posso confirmar que eles funcionam. Houve alguns erros de digitação antes

Vijay
fonte
Isso parece suportar apenas a cópia de um arquivo em um arquivo nomeado, em vez de em um diretório. E se eu quiser copiar vários arquivos? Ou um diretório?
einpoklum
Bem, esses são apenas aliases, para que você possa experimentar os comandos brutos reais dentro para ver o que funciona para você. Tenho certeza que o rsync suporta diretórios e outras designações de caminho. Você pode personalizar facilmente os aliases para que funcionem para sua situação específica. Compartilhe se conseguir fazê-lo funcionar. IIRC Eu já o usei com diretórios sem problemas.
Vijay
3

você pode simplesmente colocar a opção -v no cp cmd ou usar scp no localhost

faminto
fonte
o -v é um bom começo, e é bastante útil, mas eu gostaria de mais informações sobre exatamente quantos arquivos são deixados / foram copiados / etc
Rory
2
Então você quer a solução de Stefan Wolff.
egorgry 16/07/2009
1

É um exagero com a sobrecarga de criptografia, mas você pode usar scplocalmente:

scp <file-from> <file-to>

Ele exibirá o progresso durante a cópia.

Warren
fonte
Pelo menos no OSX, scppor padrão , não mostra nenhuma barra de progresso, pois é usada cpquando os arquivos locais estão envolvidos.
Srid diz Restabelecer Monica
1

gcpé a boa ferramenta. Aqui você tem o pacote PyPI , mas isso também pode ser encontrado no pacote distro (por exemplo, no debian / ubuntu, apt-get install gcp faça o trabalho).

Há também um bom artigo tutorial sobre o gcp .

$ gcp -r Solaar / solaar2

Copiando 7.53 MiB 100% | ############################# | 134.92 M / s Tempo: 00:00:00
spinus
fonte