Comparer des repertoires

cable59

Membre confirmé
16 Janvier 2012
15
0
Bonjour à tous

existe t il un logiciel qui permet de comparer deux répertoires et d'indiquer ainsi les doublons, ou l'absence de fichiers de l'un par rapport à l autre, puis eventuellement de les "synchroniser"

Merci pour vos réponses
 
Bonsoir

Pour faire ça, j'utilise habituellement la commande en ligne « rsync » sous Terminal. Mais c'est sans doute une solution assez malaisée, car la liste des options de cette commande est assez longue (pour le mode d'emploi, taper « man rsync »).
 
merci

mais ca ne correspond pas trop à ce que je veux faire

J'ai un repertoire A avec 50 fichiers, un repertoire B avec 40 fichiers
10 fichiers de B sont en doublon avec A et 20 fichiers de A sont manquant dans B
comment faire pour avoir A et B strictement identique ?
A et B etant sur le même ordi

merci:)
 
Je comprends d'après ton exemple que tu dois tout à la fois :
- ignorer les fichiers identiques dans A et B
- mettre à jour dans B les fichiers depuis leur version plus récente dans A
- remplacer dans B les fichiers par leur version plus ancienne dans A (sûr ?)
- copier dans B les fichiers qui n'existent que dans A
- supprimer de B les fichiers qui n'existent pas dans A (sûr ?)

Avec « rsync », je procède de la façon suivante :
Bloc de code:
rsync [B]-acv --verbose --delete[/B] [COLOR="DarkGreen"]chemin_vers_A/A/[/COLOR] [COLOR="DarkSlateBlue"]chemin_vers_B/B[/COLOR]
Note bien qu'il y a un / après A, mais pas après B .

Les options utilisées ici sont les suivantes :
-a : préserve les informations (dates et heures, permissions, propriétaire...) et traite les sous-dossiers
-c : vérifie le contenu effectifs (checksum) des fichiers pour déterminer s'il s'agit des mêmes
-v --verbose : affiche les informations sur le travail effectué
--delete : supprime les fichiers en trop

Par exemple, si le contenu des dossiers est le suivant :
Bloc de code:
A --+-- fichier_A
    |
    +-- fichier_B [I][COLOR="DimGray"](ancienne version)[/COLOR][/I]
    |
    +-- fichier_C [I][COLOR="DimGray"](nouvelle version)[/COLOR][/I]
    |
    +-- fichier_D

B --+-- fichier_A
    |
    +-- fichier_B [I][COLOR="DimGray"](nouvelle version)[/COLOR][/I]
    |
    +-- fichier_C [I][COLOR="DimGray"](ancienne version)[/COLOR][/I]
    |
    +-- fichier_E
Alors :
- fichier_A est ignoré et inchangé
- fichier_B est rétabli dans son ancienne version
- fichier_C est mis à jour
- fichier_D est rajouté
- fichier_E est supprimé

Et on retrouve donc :
Bloc de code:
B --+-- fichier_A
    |
    +-- fichier_B [I][COLOR="DimGray"](ancienne version)[/COLOR][/I]
    |
    +-- fichier_C [I][COLOR="DimGray"](nouvelle version)[/COLOR][/I]
    |
    +-- fichier_D
soit un dossier B identique au dossier A.


Et ça marche même lorsque A et B ne sont pas sur le même ordinateur.
 
Dernière édition:
Wao

C est compliqué mais effectivement ça ressemble à ce que je veux faire

je ne connais pas trop le mac
ce rsync me rappelle des commandes ms dos :s
ces commandes sont elles référencées quelque part ?

en tous cas
merci pour ton aide
 
Sinon, pour connaître les différences entre le contenu de deux dossiers, tu peux utiliser le programme FileMerge qui est fourni parmi les outils de développement Apple.

---------- Nouveau message ajouté à 15h15 ---------- Le message précédent a été envoyé à 15h08 ----------

je ne connais pas trop le mac
ce rsync me rappelle des commandes ms dos :s
En fait c'est une commande issue à l'origine du monde Unix (commande « rcp ») afin de faire des transferts optimisés entre machines (le « r » signifie « remote »). Elle est également disponible sous Windows et sous Linux (quelques infos par ici).

ces commandes sont elles référencées quelque part ?
Comme je l'ai indiqué plus haut, le mode d'emploi peut être lu en tapant la commande « man rsync » sous Terminal. D'une manière plus générale, l'aide concernant une commande en ligne peut être obtenue en tapant « man » (pour « manuel ») suivi du nom de la commande. Utiliser les flèches pour se déplacer, taper q pour quitter.
 
Bonjour
Je reprend ce fil car ma demande s'apparente à la tienne- cable59:je cherche à copier des fichiers d'un dossier (en l'occurence ceux d'une carte memoire compact flash) vers un dossier du mac ou une partie des fichiers existent déjà. Je veux donc "Copier sans remplacer".
Afin de ne pas me retaper le vidage complet de la carte ou bien afin de ne pas remplacer des fichiers du mac que j'aurais modifié entre temps.
Avant c'était simple car l'option existait, mais comment faire sous Lion?
Merci!