Comando di copia Unix che ha una barra di avanzamento, ma non pesante come rsync


14

Devo copiare molti file. Di solito uso rsync perché gli passo le -aPopzioni e posso vedere (a) quanti file sono rimasti da elaborare e (b) quanto di ogni singolo file viene copiato.

Tuttavia rsync fa anche molte cose con i checksum per verificare che un file sia stato copiato. Tuttavia non ne ho davvero bisogno ora. Ma normale cpnon include il conteggio dei file sopra menzionato, il che è molto utile.

C'è qualcosa del genere cpche include l'avanzamento di quanti file sono rimasti, ma non è così pesante rsync?

Risposte:


21

È possibile eseguire rsync con l'opzione -W, che disabiliterà i checksum.


6

Quindi questo è un alias adatto per i tuoi suggerimenti?

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

-W -non usare l'algoritmo di trasferimento delta
-a modalità archivio
-v verbose
-P mostra la barra di avanzamento e conserva i file parziali

un'altra alternativa che ho trovato in alcuni punti . richiede comunque il pacchetto pv (pipeviewer).

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

-p mostra progressi
-e mostra eta
-r mostra velocità
-n mostra output numerico

/ modifica Ora ho testato gli alias precedenti e posso confermare che funzionano. C'erano alcuni errori di battitura prima


Questo sembra supportare solo la copia di un file in un file denominato anziché in una directory. Cosa succede se desidero copiare più file? O una directory?
einpoklum,

Bene, questi sono solo alias, quindi puoi sperimentare gli effettivi comandi grezzi all'interno per vedere cosa funziona per te. Sono sicuro che rsync supporta directory e altre designazioni di percorsi. Puoi personalizzare facilmente gli alias per farlo funzionare per la tua situazione specifica. Condividi se lo fai funzionare. IIRC L'ho usato con le directory prima senza problemi.
Vijay,

3

potresti semplicemente schiaffeggiare l'opzione -v sul cmd cp o usare scp sull'host locale


-v è un buon inizio, ed è abbastanza utile, ma vorrei maggiori informazioni su quanti file sono rimasti / che sono stati copiati / ecc.
Rory,

2
Allora vuoi la soluzione di Stefan Wolff.
egorgry,


1

È eccessivo con l'overhead di crittografia, ma è possibile utilizzare scplocalmente:

scp <file-from> <file-to>

Verrà visualizzato l'avanzamento durante la copia.


Atleast su OSX, scpnon mostra alcuna barra di avanzamento di default in quanto utilizza cpsotto il cofano quando sono coinvolti file locali.
Sridhar Ratnakumar,

1

gcpè lo strumento carino. Qui hai il pacchetto PyPI , ma questo può essere trovato anche nel pacchetto distro (ad esempio in debian / ubuntu apt-get install gcp fare il lavoro).

C'è anche un bell'articolo tutorial su gcp .

$ gcp -r Solaar / solaar2

Copia 7,53 MiB 100% | ############################# | 134,92 M / s Tempo: 00:00:00
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.