Commande de copie Unix qui a une barre de progression, mais pas aussi lourde que rsync


14

J'ai besoin de copier beaucoup de fichiers. Habituellement, j'utilise rsync parce que je lui passe les -aPoptions et je peux voir (a) combien de fichiers il reste à traiter et (b) combien de chaque fichier individuel est copié.

Cependant, rsync fait également beaucoup de choses avec des sommes de contrôle pour vérifier qu'un fichier a été copié. Mais je n'en ai pas vraiment besoin maintenant. Mais normal cpn'inclut pas le nombre de fichiers mentionné ci-dessus, ce qui est très utile.

Y a-t-il quelque chose comme cpça qui inclut la progression du nombre de fichiers restants, mais qui n'est pas aussi lourd que rsync?

Réponses:


21

Vous pouvez exécuter rsync avec le commutateur -W, ce qui désactivera les sommes de contrôle.


6

Est-ce donc un alias approprié pour vos suggestions?

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

-W -ne pas utiliser d'algorithme de transfert delta
-a mode d'archivage
-v verbeux
-P Afficher la barre de progression et conserver les fichiers partiels

une autre alternative que j'ai trouvée à certains endroits . nécessite cependant le paquet pv (pipeviewer).

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

-p afficher la progression
-e afficher eta
-r afficher le taux
-n afficher la sortie numérique

/ edit J'ai maintenant testé les alias ci-dessus et je peux confirmer qu'ils fonctionnent. Il y avait des fautes de frappe avant


Cela semble ne prendre en charge que la copie d'un fichier dans un fichier nommé plutôt que dans un répertoire. Et si je veux copier plusieurs fichiers? Ou un annuaire?
einpoklum

Eh bien, ce ne sont que des alias, vous pouvez donc expérimenter les commandes brutes réelles à l'intérieur pour voir ce qui fonctionne pour vous. Je suis sûr que rsync prend en charge les répertoires et autres désignations de chemin. Vous pouvez facilement personnaliser les alias pour les adapter à votre situation spécifique. Partagez si vous le faites fonctionner. IIRC Je l'ai utilisé avec des répertoires avant sans problème.
Vijay

3

vous pouvez simplement gifler l'option -v sur la cmd cp ou utiliser scp sur l'hôte local


le -v est un bon début, et c'est très utile, mais j'aimerais plus d'informations sur le nombre exact de fichiers qui restent / ont été copiés / etc
Rory

2
Ensuite, vous voulez la solution de Stefan Wolff.
egorgry


1

C'est exagéré avec la surcharge de chiffrement, mais vous pouvez utiliser scplocalement:

scp <file-from> <file-to>

Il affichera la progression lors de la copie.


Au moins sur OSX, scpn'affiche aucune barre de progression par défaut car il utilise cpsous le capot lorsque des fichiers locaux sont impliqués.
Sridhar Ratnakumar

1

gcpest le bel outil. Ici vous avez le paquet PyPI , mais cela peut aussi être trouvé dans le paquet distro (par exemple dans debian / ubuntu apt-get install gcp faire le travail).

Il y a aussi un joli tutoriel sur gcp .

$ gcp -r Solaar / solaar2

Copie 7,53 Mio 100% | ############################# | 134,92 M / s Temps: 00:00:00
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.