Fusionner deux dossiers sans écraser les fichiers


3

J'ai un dossier appelé "AeroFS" et un autre appelé "Sauvegarde AeroFS".

"Sauvegarde AeroFS" contient tout ce que "AeroFS" contient, et plus encore.

Je dois fusionner "Sauvegarde AeroFS" dans le dossier "AeroFS", mais ne pas écraser TOUS les fichiers existants, même s'ils sont plus récents.

Je ne suis pas particulièrement à l'aise avec les commandes terminales, mais je peux les essayer.

Yat - il un libre application qui peut le faire sans écraser les fichiers existants du tout?


man mvpourrait être un bon endroit pour commencer :-)
nohillside

J'essaie avec RSync mais il ne se comporte pas correctement et copie le dossier dans le dossier sélectionné.
user2924019

On dirait que vous pouvez avoir une barre oblique dans votre commande rsync là où vous ne devriez pas, ou vice versa. Voir cette réponse .
calum_b

Essayezrsync -av --ignore-existing source/ destination
fd0

Réponses:


1

Selon la version de macOS que vous utilisez, vous pouvez simplement sélectionner tous les fichiers de la sauvegarde AeroFS et les faire glisser dans le dossier AeroFS . Lorsque vous le faites, vous serez invité comme ci-dessous:

entrez la description de l'image ici

Si vous cochez ensuite la case Appliquer à tout et cliquez sur le Keep Bothbouton, vous fusionnerez les fichiers à votre guise. (Dans les anciennes versions de macOS, vous pouvez être invité à utiliser le Mergebouton au lieu du Keep Bothbouton). Si vous n'obtenez aucune de ces options, essayez de maintenir la Optiontouche enfoncée tout en faisant glisser les fichiers.

IMPORTANT - Avant de faire cela avec les dossiers de votre choix, je créerais quelques dossiers de test (ou simplement des copies des dossiers à fusionner), puis testerais ce comportement, car je ne suis pas sûr des versions de macOS proposées à l'origine. cette fonctionnalité.


Malheureusement, ce n'est pas ce que nous voulons. Il copie toujours les fichiers et crée des doublons de tous ceux qui existent déjà. Nous avons besoin d'une option "Passer" ".
utilisateur2924019

Hmm, je suis un peu confus. Si vous souhaitez fusionner les dossiers sans écraser les fichiers existants, n'est-ce pas exactement ce dont vous avez besoin? Excuse-moi si quelque chose d’évident me manque, c’est un de ces jours. :(
Monomeeth

Non, les deux dossiers sont identiques, sauf que le dossier de sauvegarde contient plus de fichiers. Si je devais les fusionner, tous les fichiers existants se retrouveraient avec des doublons.
user2924019

Bon, d'accord, si vous obtenez l' option Conserver les deux par défaut, appuyez sur la touche Option pour changer l'option de Conserver les deux à ignorer .
Monomeeth

L'option Ignorer n'existe pas du tout. J'ai essayé de tenir toutes les clés.
user2924019

1

Je ne sais pas pourquoi l'autre réponse a été supprimée, c'était presque exact.

J'utilise la commande de terminal pour faire ceci:

cp -n -v '/src'/* '/dest'

cp = Copier

-n = Ne pas écraser l'existant

-v = Sortie verbeuse


1

Vous pouvez le faire dans Terminal avec un court script:

for file in /source/directory; do $time=date +%s; if [[ -f /target/directory/$file ]]; then cp $file ${file}-${time}; else cp $file /target/directory/$file; fi; done

Cela vérifiera si le fichier existe déjà et si c'est le cas, il ajoutera l'heure en secondes au nom du fichier de destination et le recopiera. L'avantage que cela présente par rapport au fait de ne faire qu'un écrasement -vou -nun écrasement, c'est de s'assurer qu'il n'y a pas de doublons multiples.

De plus, cela présente l'avantage supplémentaire que si les noms de fichiers sont identiques mais de taille / contenu différents, vous avez la possibilité de voir les dupes potentielles et de les traiter.


0

Sans utiliser terminal, vous pouvez faire glisser vos fichiers du dossier d'origine (Sauvegarde AeroFS) vers le dossier de destination (AeroFS). Lorsque le Finder s'aperçoit que le même fichier existe, il affiche une alerte vous demandant ce que vous souhaitez qu'il fasse. Si vous appuyez sur "Option" tout en regardant cette alerte, l'une des options devient "Ignorer" et vous pouvez ensuite l'appliquer à tous les fichiers sur lesquels vous faites glisser le curseur.

J'ai enregistré une courte vidéo montrant cela en action


En utilisant Terminal, je recommande fortement la solution RSYNC:

rsync -av --ignore-existing sourceFolder/ destinationFolder

0

Synkron pourrait bien faire exactement ce que vous voulez. Le prix est correct. Il a beaucoup de fonctionnalités. Je l'utilise pour synchroniser depuis mon dossier maître sur Mac vers un dossier NTFS sur un Raspberry pi HD. Il ne va pas sauvage en copiant des fichiers qui sont déjà là.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.