Comment puis-je fusionner deux dossiers similaires mais pas identiques?

11

J'ai un dossier (qui est rempli de nombreux sous-dossiers et fichiers) qui se trouve sur un lecteur FireWire [source] que j'essaie de déplacer vers un lecteur USB [destination].

J'essaie de déplacer tous les fichiers de la source vers la destination.

J'ai commencé à le faire via le Finder, mais cela m'a donné une erreur d'autorisations environ 1 / 8ème du processus, puis s'est arrêté.

Lors du déplacement de fichiers entre des lecteurs, je pense que le Finder fait d'abord une «copie», puis supprime la «source» uniquement lorsque la commande de copie s'est terminée avec succès.

Cela signifie que certains fichiers ont été copiés avec succès, mais je ne sais pas lesquels ou combien. J'ai donc commencé à copier des sous-dossiers de la source vers la destination (ensembles plus petits) et les ai supprimés de la source lorsqu'ils ont copié avec succès.

J'ai fini par ne pas pouvoir terminer ce processus en une seule séance et j'ai perdu ma "place"

Alors maintenant, je me retrouve avec deux ensembles de données incomplets. La source a probablement des fichiers / dossiers qui sont déjà sur la destination, mais tout n'a pas été copié.

Certains dossiers peuvent avoir été partiellement copiés mais pas tous leurs sous-dossiers, etc.

J'essaie de trouver la meilleure façon de déplacer le reste de la source vers la destination tout en minimisant la duplication. Nous parlons de beaucoup de données ici (la source est de 420,72 Go en 398127 éléments, et la destination est de 298,84 Go et 390149 éléments), donc je vais évidemment devoir essayer d'automatiser cela d'une manière ou d'une autre . Je ne sais juste pas comment.

J'ai pensé à gcp[GNU cp] avec --update --archiveou dittoou rsyncou ChronoSync mais je ne suis tout simplement pas sûr de la meilleure option et des paramètres à utiliser pour le programme recommandé (est-ce que je veux --archiveavec gcp? Avec quels drapeaux dois-je utiliser dittoou rsync?)

TJ Luoma
la source
Ce logiciel est incroyable: bombich.com (Carbon Copy Cloner). Résout tous vos problèmes.
Kassym Dorsel
CCC ou SuperDuper ne m'aideront qu'à reproduire ce que j'ai, non? Je dois d'abord les fusionner.
TJ Luoma
Il peut fusionner. Vous devrez affiner vous-même les paramètres. c'est-à-dire personnaliser ces paramètres / paramètres avancés
Kassym Dorsel
Ah… je ne le savais pas. Je vais certainement le vérifier.
TJ Luoma

Réponses:

15

Vous pouvez ouvrir Terminal et utiliser l'une des options suivantes ( rsync serait probablement celui qu'il vous faut si vous voulez quelque chose qui ne sera pas complètement perdu si vous arrêtez le processus ):

La méthode UNIX standard

cp -R -v source/. destination

La façon geek UNIX (redémarrable)

rsync -vaEW source/ destination

La manière "facile" d'OSX

ditto -V source destination

La source


la source
1
Cette commande «cp» ne briserait-elle pas les liens logiciels? Par exemple, les applications Mac semblent parfois utiliser des liens à l'intérieur du wrapper .app. (Les liens sont toujours la grande inconnue pour moi lorsque j'essaie de faire cela.) Bon point sur rsync, qui peut être le meilleur plan car (avec autant de données) la possibilité d'interruption est importante.
TJ Luoma
1

Si vous utilisez FileMerge à partir des outils de développement sur les deux arborescences de répertoires, vous pourrez voir quels fichiers individuels ont été copiés, car cela fera une différence entre eux et montrera les différences.

Sinon, cela rsyncpourrait être un peu plus automatisé comme mentionné ci-dessus par cksum.

SJT
la source