3 votes

Utilisation de `rsync` comme une version plus avancée de `cp`

Pour copier de gros fichiers (et/ou de grandes quantités de fichiers), surtout entre des disques, je préfère éviter d'utiliser le Finder car il échoue souvent avec un message d'erreur quelconque et/ou une plainte sur les autorisations.

À la place, j'ai regardé l'utilisation de rsync - ou, plus spécifiquement, la dernière version de rsync disponible sur Homebrew, qui est actuellement :

rsync  version 3.1.1  protocol version 31

Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes, pas de préallocation, drapeaux de fichier

(Ce sont les capacités par défaut que Homebrew utilise.)

Le problème est que rsync est désespérément complexe, et je ne suis jamais sûr si j'utilise les arguments appropriés, ou s'il y en a d'autres que je devrais utiliser :

rsync \
    --8-bit-output \
    --acls \
    --backup \
    --devices \
    --exclude='.DS_Store' \
    --executability \
    --group \
    --human-readable \
    --inplace \
    --itemize-changes \
    --owner \
    --perms \
    --progress \
    --prune-empty-dirs \
    --recursive \
    --safe-links \
    --specials \
    --stats \
    --times \
    --update \
    --verbose \
    --xattrs \
    'foo' /chemin/vers/destination/

Arguments sur lesquels je ne suis pas sûr de devoir utiliser ou non, principalement parce que je ne suis pas sûr à 100% de ce qu'ils font :

  • (l'une des autres options pour les liens au lieu de 'safe-links')
  • --relative
  • --sparse
  • --partial

D'autres suggestions?

0 votes

Avez-vous envisagé d'utiliser ditto à la place?

2voto

Ged Byrne Points 481

À moins que vous n'ayez des besoins spécifiques, je jetterais la plupart de ces options et je garderais les choses simples: rysnc -aEv (sur la version OS X par défaut) ou rsync -aXv (sur la version Homebrew).

Options

  • -a est le mode archive, ce qui signifie essentiellement conserver les métadonnées (horodatages, autorisations, etc.) et effectuer une copie récursive. C'est ce que vous voulez pour vos opérations de sauvegarde ou de copie standard.

  • -E/-X préserve les attributs étendus (aussi appelés fourches de ressources). Par le passé, la version intégrée de rsync avait une fonctionnalité spéciale pour couvrir les bizarreries de HFS+ à cet égard, mais les nouvelles versions par défaut de rsync peuvent être améliorées à cet égard désormais. Je pencherais vers l'utilisation de la version intégrée à moins que vous ayez une raison spécifique de le faire autrement.

  • -v est l'option verbeuse, et elle permet simplement de suivre plus facilement ce qui se passe si vous exécutez cela dans une fenêtre Terminal. Si cela doit être exécuté dans un script, vous pouvez le supprimer.

À moins que vous ne sachiez que vous en avez besoin, vous pouvez ignorer en toute sécurité la plupart de ces options que vous avez déjà. Certaines sont dupliquées par la commande archive, et d'autres (comme --inplace, qui peut ralentir les choses et laisser le système de fichiers dans un état inconsistant) ne sont nécessaires que pour des cas spécifiques. Simplifiez-vous la vie - si vous rencontrez des problèmes spécifiques avec les options que j'ai listées, peut-être énumérez-les (dans une question séparée si nécessaire).

En passant, rencontrer des problèmes de copie via Finder est un peu inquiétant à mon avis. Bien que cela ne soit pas toujours aussi rapide que certaines options, il ne devrait pas afficher de messages d'erreur. Vous voudrez peut-être vérifier/réparer votre disque dans Utilitaire de disque.

1 votes

Une partie de mon désir est d'en apprendre davantage sur ces différentes options et où je pourrais vouloir les utiliser. Par exemple, certains semblent simplement rapporter ce qui a été fait une fois que tout est terminé. En ce qui concerne Finder, je comprends ce que tu veux dire mais dans ce cas, il s'agit généralement de quelque chose comme un dossier à l'intérieur d'un bundle .dvdmedia qui a des autorisations étranges ou quelque chose du genre. Il y a des tonnes de sites Web sur Google qui semblent tous répéter les informations man rsync mais pas de pages avec des explications plus approfondies/lisibles sur ce qu'ils font et quand ils devraient/ ne devraient pas être utilisés.

0 votes

Les attributs étendus ne sont pas les mêmes que les fourches de ressources.

0 votes

@MaxRied vrai. Il serait plus précis de dire que les attributs étendus sont un concept plus général, dont les fourches de ressources sont une implémentation spécifique à Mac/HFS+. Mais dans le contexte Mac, ils peuvent être plus ou moins interchangeables.

-1voto

foxybagga Points 1345

Vous pourriez utiliser ditto qui est une commande cp plus avancée et qui a été créée par Apple.

0 votes

Pouvez-vous montrer un exemple de comment c'est utilisé ?

0 votes

Apple a développé sa propre (meilleure) implémentation de cp. Cette commande, appelée "ditto", ne fait pas seulement une copie des fichiers du répertoire source vers le répertoire de destination, en créant le répertoire de destination s'il n'existe pas; mais va également fusionner le contenu du répertoire source avec le répertoire de destination s'il existe. ditto ~/Documents/MyFolder ~/Desktop/MyNewFolder @JashJacob

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X