Pourquoi ne pas toujours utiliser rsync?

17

Je voulais demander s'il y a une raison de ne pas utiliser rsyncpour tout et d'abandonner cp?
Je n'étais pas au courant rsyncet maintenant je ne sais pas pourquoi cpon en a jamais besoin.

Jim
la source
9
rsyncn'est pas disponible partout, cpest.
Mat
3
Quelle installation? Linux? Laquelle? Unix? idem. BSD? Vous ne savez jamais ce qui vient par défaut.
terdon
5
Il n'y a vraiment pas "d'installation par défaut" pour Linux. Chaque distribution a son ensemble de packages de base et une multitude de variations dans ceux-ci. De plus, lorsque vous devez travailler sur de nombreux systèmes, l'utilisation des outils disponibles partout simplifie les choses.
Mat
4
@Mat: Il existe une installation par défaut (ou principale) dans la mesure où les distributions Linux se conforment, via l'espace utilisateur GNU de base, à POSIX, qui nécessite (et définit le fonctionnement de) cpmais pas rsync: pubs.opengroup.org/onlinepubs/007904875 /utilities/contents.htm
goldilocks
1
Je suis sûr que Debian GNU / Linux installe rsync par défaut. Il n'est cependant pas disponible dans l'environnement d'installation et de secours. (J'ai utilisé cela tôt aujourd'hui pour transférer le contenu de ma partition racine d'un disque à un autre. J'ai utilisé le DVD d'installation 7.1.0 amd64.)
un CVn du

Réponses:

24

À strictement parler, oui, vous pouvez toujours utiliser rsync. De man rsync(souligné par moi):

Rsync est un outil de copie de fichiers rapide et extrêmement polyvalent. Il peut copier localement, vers / depuis un autre hôte sur n'importe quel shell distant, ou vers / depuis un démon rsync distant. Il offre un grand nombre d'options qui contrôlent tous les aspects de son comportement et permettent une spécification très flexible de l'ensemble de fichiers à
copier. Il est célèbre pour son algorithme de transfert delta, qui réduit la quantité de données envoyées sur le réseau en n'envoyant que les différences entre les fichiers source et les fichiers existants dans la destination. Rsync est largement utilisé pour les sauvegardes et la mise en miroir et comme commande de copie améliorée pour un usage quotidien.

Maintenant, il n'est parfois pas utile de taper ces quelques caractères supplémentaires simplement pour utiliser un tank pour tuer une mouche. De plus, il rsyncn'est souvent pas installé par défaut, donc cpc'est bien d'avoir.

terdon
la source
Vous voulez dire non disponible dans le cadre de l'installation par défaut mais d'un téléchargement séparé?
Jim
1
@ Jim oui, vous devez parfois vous installer en rsyncfonction du système sur lequel vous vous trouvez. Si vous n'y avez pas rootaccès, cela peut être difficile. cpest POSIX et sera toujours là.
terdon
9
cpfait partie des coreutils GNU donc il est toujours installé sur tous les systèmes Linux alors qu'il rsyncne l'est pas.
Martin von Wittich
1
sometimes it is just not worth typing those few extra characters- J'ai un alias pcp(pour "copie de progression") pour cela;)
Izkata
19

Rsync peut être plus lent que cpdans certaines situations. Par exemple, lorsque la destination existe et que rsync finit par faire des comparaisons coûteuses pour chaque bloc, ne trouve pas de blocs égaux et copie de toute façon le fichier source complet.

De plus, lorsque les fichiers de destination n'existent pas, rsync ne fournit aucun avantage par rapport à cp.

maxschlepzig
la source
1
En dessous, la méthodologie de copie de rsync est beaucoup plus lente. Voir unix.stackexchange.com/questions/374071/… . Une série de cp montre (au moment de la rédaction de ce document), une simple séquence d'opérations de lecture de 32 Ko / 32 Ko d'écriture. Rsync, quant à lui, effectue une lecture / écriture de 4092 octets + 4 octets sur socket / lecture de socket / écriture de 250 Ko dans un fichier. Je fais un rsync de 36T de fichiers de taille mixte à un débit de 130 Mo / s. Je peux tripler cela avec cp -a. rsync gagne, comme vous le dites lorsque vous voulez "faire" ressembler "ceci" à des répertoires déjà similaires.
Mike S
7

Je pense rsyncque ne gère pas la copie de fichiers clairsemés d'une manière simple. cppar défaut gère très bien cela.

wcang
la source
6
C'est le cas avec le -Sdrapeau.
terdon
2
@terdon, eh bien, veuillez vous référer à cet article: barricane.com/rsync-vm-sparse-inplace-kvm-vmware .
wcang
Ah, merci, vous devriez ajouter cela à votre réponse. J'ai rapidement recherché la page de manuel sparse.
terdon
4

Parce que ce cpdrapeau manque dans rsync:

-i, --interactive
       prompt before overwrite (overrides a previous -n option)
Dalker
la source
Non, bien qu'il y ait -n(dry run) sur rsync, qui peut être une sorte de substitut à cette fonctionnalité.
Niloct