Comparer deux dossiers
Par Nicofo le mardi 6 décembre 2011, 23:05 - Linux - Lien permanent
Affichage plus clair des différences dans les dossiers.
Cette mise à jour permet un affichage beaucoup plus clair des résultats lorsqu'un dossier est manquant : au lieu d'afficher tous les sous-fichiers,
compDossier
n'affichera plus que le nombre de fichiers. Exemple :$ compDossier /media/Sauvegardes_Photos ~/ImagesRemarque : si vous voulez toujours voir tous les fichiers, utilisez l'option
Fichiers différents par leur taille :
img14.jpg
img16.jpg
Ce que "/media/Sauvegardes_Photos/" contient en plus :
Ce que "/home/nicolas/Images/" contient en plus :
2010/img_new1.jpg
2010/img_new2.jpg
2011/ (27 éléments)
-a
Remarque : le script a été renommé en compDossier
(anciennement compDossier2
)
22/11/2011
Le script
compDossier
permet de comparer rapidement 2 dossiers et d'en lister les différences.Pour cela, il se base sur :
- le nom des fichiers (l'option "
-i
" permet une comparaison insensible à la casse) - la taille des fichiers
- la date de modification des fichiers si l'option "
-t
" est donnée
02/07/2011
Une partie a été réécrite et le script est dorénavant incroyablement plus rapide ! (ou plutôt la version précédente n'était pas du tout optimisée )
30/03/2010
Il existait déjà
compDossier_simple
, voici désormais compDossier
!Voici donc un nouveau petit script qui vous permet de lister les différences entre le contenu de deux dossiers : compDossier.
Cette nouvelle version tient désormais compte de la taille des fichiers pour pouvoir détecter des différences (alors que compDossier ne tenait compte que des noms des fichiers, indépendamment du contenu).
Et à quoi ça peut servir ? Un simple exemple : vous avez un CD avec les sauvegardes des photos du PC. Comment savoir quelles sont les nouvelles photos qui n'ont pas encore été gravées sur le CD ? »
compDossier
!$ compDossier /media/Sauvegardes_Photos ~/ImagesTélécharger le script : compDossier.
Ce qui est différent dans les deux dossiers :
img14.jpg
img16.jpg
Ce que "/media/Sauvegardes_Photos/" contient en plus :
img22.jpg
Ce que "/home/nicolas/Images/" contient en plus :
2007/img_new1.jpg
2007/img_new2.jpg
À voir aussi : Comparer deux dossiers (version plus simple)
1ère version : 12/12/2008
Commentaires
Ton premier script était suffisant, pour les photos il y a rsync, unison, ...
J'ai refait un diff (tout simple en python) il y a quelques temps, je ne trouvait pas mon bonheur dans les n variantes disponibles, il compare donc 2 fichiers textes mais aussi 2 dossiers comme ton premier script. (http://www.nerux.org/pdf/pydiff)
Pour comparer des dossiers et fichiers j'utilise "meld" quelles sont les avantages de ce script par rapport à meld ?
Tiens, et pourquoi ne pas utiliser la date de modification des fichiers ?
@cquad : je ne connaissais rien qui permettait de comparer 2 dossiers (je n'ai pas cherché non plus ) => je ne sais pas te répondre. L'avantage pour moi :
compDossier2
fait exactement ce que je veux@Nab : j'y ai pensé. Mais parfois quand on copie des fichiers, la date des fichiers de destination est la date de copie plutôt que la date du fichier origine (??) => j'ai préféré le test "taille".
Avec rsync il est possible de conserver les dates.
Faire un diff par la taille n'est-il pas gênant ?
Je change un octet par un autre dans un fichier texte il me dira que ces fichiers sont exact ? pourquoi ne pas passez par le md5 ou autre ?
oui ca peut le faire pour des photos.
sous win j'utilise beyond compare mais j'ai toujours pas trouvé d'alternative valables sous ninux
(pour de la comparaison "visuelle" de répertoires de sources par exemple)
Pourquoi ne pas faire
diff dossier1 dossier2 qui donne le même resultat. ??
@EauLand : mon script se veut assez simple et à utiliser en connaissance de cause : il ne détectera forcément pas des différences de fichiers s'ils ont la même taille. Dans l'exemple que je donne, il fonctionnera bien car si tu retouches une photo, il y a fort à parier que sa taille sera modifiée.
@reno : ben je connaissais pas diff sous cet aspect là ... Alors je dirais que la présentation des résultats et plus belle et plus concise avec mon script
Bonjour Nicofo,
je cherche à comparer deux dossiers, voilà comment je suis arrivé ici. Malheureusement, je n'ai jamais utilisé de script... Du coup, je ne sais pas ce que je dois faire de la page de commandes qu'ouvre mon explorateur une fois que j'ai cliqué sur "télécharger le script"... Pourrais-tu aider un newbie comme moi?
@Reno: j'ai essayé diff dossier1 dossier2, mais j'obtiens seulement:
diff: opérande supplémentaire « /media/disk-1/dossier2/ »
diff: Pour en savoir davantage, faites: « diff --help ».
une idée pour régler ce problème? (j'ai parcouru diff --help, mais ça ne m'aide pas...)
Nabolingo,
en fait, tu dois faire clic droit sur le lien "Télécharger le script : compDossier2" et enregistrer le fichier ("Save link as..."). Ensuite rend ce fichier exécutable (clic droit à partir de l'explorateur de fichiers -> Propriétés -> onglet Permissions).
Enfin, simplement à partir d'un terminal :
Un grand merci... ce script de 2008 sert encore !
Fort utile...
Script régulièrement mis à jour d'ailleurs.
Précisément il y a qq jours => ajout de l'option (-t) qui permet aussi de comparer par rapport à la date de modification.
Un grand merci ton script !
diff -r -q chemin1 chemin2
diff
fait une "vraie" comparaison (compare byte par byte) alors quecompDossier
se contente de lister les différences de fichiers par leur taille (et éventuellement par leur date de modification) ce qui permet une comparaison ultra-rapide.À titre d'exemple, j'ai tenté
diff
sur quelque millier de photos => après 3 minutes il n'avait toujours fini alors quecompDossier
a fini en 3/4 secondes.Merci beaucoup pour ce script! Il est bien pratique!
Super marche vraiment bien et rapidement. Bon boulot bon partage