quelle est la commande rsync pour fusionner «intelligemment» deux dossiers?

39

J'ai des dossiers qui ont été dupliqués par erreur et je dois les fusionner ensemble. Supposons que le dossier A contient le fichier X et que le dossier B contient le fichier Y. J'aimerais copier le fichier X dans le dossier B. Mais, bien sûr, je peux faire face à des cas plus complexes, où les dossiers A et B contiennent le même fichier X : Dans ces cas, je voudrais conserver la copie la plus récente du fichier. rsync doit donc comparer les deux fichiers. Si l'origine est plus ancienne, ignorez-la, sinon la destination est la plus ancienne, écrasez-la.

Quels paramètres dois-je mettre sur la ligne de commande rsync?

C'est ce que j'ai trouvé googler, mais je ne pense pas que ce soit correct.

rsync -avz --ignore-existing src dest

La page de manuel me dépasse.

Merci.

PS Dans les cas où un fichier existe dans les deux dossiers, le mieux serait d’écraser l’ancien dans le dossier de destination tout en conservant une copie de l’ancien, tout comme une sauvegarde au cas où vous devriez revenir à la précédent

Tiziano Solignani
la source

Réponses:

66

J'utiliserais:

rsync -abviuzP src/ dest/
  • -i active le format détaillé, qui affiche plus d'informations que le format par défaut
  • -bcrée des fichiers de sauvegarde rsync existant dans les deux dossiers, en les ajoutant ~à l'ancien fichier. Vous pouvez contrôler ce suffixe avec--suffix .suf
  • -u rend le transfert rsync ignorer les fichiers qui sont plus récents dans dest que dans src
  • -z active la compression, ce qui est utile lors du transfert de fichiers facilement compressibles sur des liens lents
  • -Ps'allume --partialet--progress
  • --partial fait en sorte que rsync conserve les fichiers partiellement transférés si le transfert est interrompu
  • --progress affiche une barre de progression pour chaque transfert, utile si vous transférez de gros fichiers
utilisateur49740
la source
2
Vraiment sympa, j'ai fini par utiliserrsync -abuP
Qed le