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?

Rory
la source

Réponses:

21

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

Stefan Wolff
la source
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

Vijay
la source
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

egorgry
la source
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.

garenne
la source
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
spinus
la source