MacNOMODO

Où on cause du Mac - A consommer sans modération

 
PortailPortailAccueilRechercherRechercherFAQS'enregistrerMembresConnexion

Partagez | 
 

 Rechercher les doublons

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Rechercher les doublons   5/29/2016, 13:33

Voilà un bout de code qui permet de traquer les doublons sur la base de leur empreinte MD5.
La traque à lieu dans un dossier ou sur un disque entier (dans ce cas, s'armer de patience).

Code:
#! /bin/bash

clear
chflags -R nouchg .
find . -type f|awk '{gsub(/\040/,"\\\040");gsub(/\047/,"\\\047");gsub(/\(/,"\\(");gsub(/\)/,"\\)");gsub(/\&/,"\\\\&");gsub(/\|/,"\\|");gsub(/\042/,"\\\042");system("md5 " $0)}'>ChercheDoublesMD5.TXT
cat ChercheDoublesMD5.TXT|awk '{md5=$NF;gsub(/MD5 \(/,"");gsub($NF,":::");gsub(/\) = :::/,"");OFS="\t";print md5,$0}'|sort>ChercheDoublesTRI.TXT
echo @@@ $(pwd) @@@ > ChercheDoubles.TXT
M1='DUMMY'
M=0
while read L
do
  if [ "${L##*/}" != ".DS_Store" ]
  then
      M2=${L%%   *}
      if [ "$M2" = "$M1" ]
      then
        if [ "$M" = "0" ]
        then
            echo >> ChercheDoubles.TXT
            echo "$P" >> ChercheDoubles.TXT
        fi
        echo "$L" >> ChercheDoubles.TXT
        M=1
      else
        M=0
      fi
      M1=$M2
      P=$L
  fi
done < ChercheDoublesTRI.TXT
echo >> ChercheDoubles.TXT
rm ChercheDoublesMD5.TXT
rm ChercheDoublesTRI.TXT
open ChercheDoubles.TXT

Si on sauve ça dans son dossier de base (~) sous le nom de ChercheDoubles.sh, on peut simplement s'en servir depuis le Terminal.
Pour rechercher les doubles sur le bureau, par exemple, on pourra taper :

Code:
cd ~/Desktop
~/ChercheDoubles.sh

Avant de s'en servir, il faut néanmoins le rendre exécutable :

Code:
chmod 700 ~/ChercheDoubles.sh


Dernière édition par TG le 5/30/2016, 17:59, édité 3 fois (Raison : modif)
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   5/29/2016, 23:21

Ça m’intéressait bien, ton script et j’ai fait pas mal d’essais mais ça n’a pas trop l’air de marcher.

Si les noms comportent des caractères non ascii, ça semble le troubler et il sort des erreurs comme quoi il ne trouve pas les fichiers qui en comportent.

J’ai ensuite choisi un petit dossier dans lequel j’ai volontairement mis un fichier en double mais il ne m’a sorti aucun résultat.

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   5/29/2016, 23:41

Je pense savoir pourquoi.
En postant sur le forum, les tabulations sont remplacées par des espaces.

Dans la ligne

M2=${L%%   *}

remplace les espaces par une unique tabulation entre le deuxième % et le *

M2=${L%%[TAB]*}
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   5/29/2016, 23:46

Exact ! Là il m’a trouvé le fichier doublé et aussi une icône de ficher utilisée deux fois.
Je vais essayer dans un plus gros dossier.

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   5/29/2016, 23:52

hr a écrit:
Exact ! Là il m’a trouvé le fichier doublé et aussi une icône de ficher utilisée deux fois.
Je vais essayer dans un plus gros dossier.

Cool !
J'ai lancé ça l'autre jour sur mon dossier Images. Ça a tourné un bon moment et ça a faire un peu chauffer la machine.
MD5 consomme du CPU et ça se sent (et ça se voit avec le Moniteur d'activité).
Mais le délai était raisonnable tous comptes faits.
La bibliothèque iPhoto est bourrée de doublons auxquels il ne faut pas toucher. Mais c'est instructif.
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   5/30/2016, 00:14

Oui oui, ça consomme une montagne de ressources ! Il vaut mieux cibler ce qu’on veut fouiller.

Bon, zut, ça n’a pas marché dans mon nouvel essai, erreurs à cause des espaces dans le nom du chemin et les caractères non ascii.
Du coup je ne sais plus trop où chercher, il y a plein de ces caractères dans mes dossiers ou mes fichiers. Et dans ce cas, j’ai beau introduire des doublons, aucun résultat.

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   5/30/2016, 16:05

Bizarre. J'ai moi aussi des espaces dans les noms de chemins et ça marche
Tu as des exemples pour tes caractères à la con ?
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   5/30/2016, 17:00

Dossier /Users/hr/Gestion/Mises à Jour/• Mac OS/Utilitaires

Sortie sur le terminal :

Code:
chflags: /Users/hr/Gestion/Mises: No such file or directory
chflags: à: No such file or directory
chflags: Jour/•: No such file or directory
chflags: Mac: No such file or directory
chflags: OS/Utilitaires: No such file or directory
find: /Users/hr/Gestion/Mises: No such file or directory
find: à: No such file or directory
find: Jour/•: No such file or directory
find: Mac: No such file or directory
find: OS/Utilitaires: No such file or directory

Le fichier ChercheDoubles.TXT ne contient rien alors qu’il y a un doublon (un fichier recopié dans un sous-dossier).

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   5/30/2016, 18:00

Essaie avec la nouvelle version (attention à la tabulation)
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   5/30/2016, 20:08

Impec pour le fichier doublon, c’est bon il l’a repéré.

Mais il y a un truc bizarre, il m’en trouve des douzaines d’autres parce qu’il liste aussi les fichiers d’icônes de dossier invisibles Icon qui, d’après lui, ont tous le même MD5 ce qui me laisse un peu perplexe parce que les icônes sont toutes différentes…

Code:

@@@ /Users/hr/Gestion/Mises à Jour/• Mac OS/Utilitaires @@@

a5f345796114f6d44e2990605e7bcd96   ./Applis/LCDTest_1_1.dmg
a5f345796114f6d44e2990605e7bcd96   ./Visu/LCDTest_1_1.dmg

d41d8cd98f00b204e9800998ecf8427e   ./Applis/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Chevaux de Troie, virus/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Compression, chiffrage/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Compression, chiffrage/StuffIt/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Disques, montage, démarrage/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Doc/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Fichiers/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Icon
d41d8cd98f00b204e9800998ecf8427e   ./Maintenance/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Maintenance/Onyx/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Maintenance/• techtool/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Mémoire/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Réseau/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Réseau/syncthing/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Réseau/syncthing/Syncthing.app/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Sauvegarde/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Système/Icon
d41d8cd98f00b204e9800998ecf8427e   ./Visu/Icon

Pas très gênant mais bizarre.

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   5/31/2016, 18:29

C'est facile à vérifier.
J'imagine que ces fichiers sont invisibles.
Un coup d'Onyx pour les voir et un éditeur quelconque pour les comparer.

Tu peux aussi générer le MD5 toi-même depuis le Terminal pour voir.

Ils font combien d'octets ?
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   5/31/2016, 18:49

Je suppose que le début de la ligne du fichier de résultat est le md5 et sa valeur est la même pour chaque fichier Icon.
Comme ils ont toutes sortes de tailles allant de 30 à 150 ko, un md5 identique pour tous me paraît fort peu crédible…

Impossible de calculer le md5 parce que le nom Icon se termine en fait par un cinquième caractère qui est un retour chariot (stupidité qui existait déjà en OS 9 !) et donc je ne peux pas taper son nom.

Si je traîne l’icône de l’Icon dans le terminal, le retour chariot est pris en compte en tant que tel et le nom est donc faux puisque ce dernier caractère à la gomme n’y figure pas !

Si les commandes du terminal ne savent pas traiter un nom pareil, c’est peut-être la raison pour laquelle il y a un bug justement sur ceux-là…

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   5/31/2016, 19:16

Juste pour ajouter à la confusion, vu de la banquise un Icon a toujours 0 octet de taille… Par contre je peux calculer le MD5 ! Ce qui me fait une belle jambe puisqu’il le voit vide et trouve donc toujours le même MD5 mais évidemment pas le même que celui que trouve le mac… Circonspect
Et si tu éliminais du tri tous les fichiers dont le nom fait 5 caractères et dont les quatre premiers sont Icon ?
Évidemment le tri ne prendrait pas en compte les fichiers appelés Icono ou Icon9 ou Icon§ mais bon…

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   6/1/2016, 18:20

C'est pour ça que je le publie, pour que chacun l'aménage à sa sauce Complice
Ceci dit, je pourrais ignorer le fichiers vides.

Tu sais comment ça se teste en bash ?
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   6/1/2016, 18:30

Allez, remplace :

Code:
find . -type f

par

Code:
find . -type f ! -size 0c
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   6/1/2016, 20:00

Tagada tsoin tsoin !
Ça marche !
Non mais laissez moi 

J’ai testé deux fichiers identiques avec comme noms icona et iconb ou deux fois icon et dans les deux cas ils sont repérés. Dans le second cas j’ai changé un caractère dans le contenu de l’un d’entre eux et ils ont été ignorés.
Parfait !

Je suppose, si j’essaye d’interprèter un peu au pif, que ce bout de code ajoute la condition « pas si le dernier caractère du fichier est 0C », autrement dit form feed.

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   6/1/2016, 21:09

Non non, ça veut dire "pas si sa taille fait zéro octet"

Voilà
Il existe des utilitaires payants pour faire la même chose
Comme ça ne sert pas souvent, un script même un peu lent, ça le fait
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   6/1/2016, 21:21

TG a écrit:
Non non, ça veut dire "pas si sa taille fait zéro octet"
Ah mince, pour une fois que j’avais cru comprendre un bout de script…
Pourtant le Finder me donne des tailles non nulles mais il est vrai que, de même que linux, la couche unix du mac les voient effectivement à 0 octet et comme c’est dans ce monde-là que travaille le script…
Tiens, faudrait que j’essaye dans linux, comme le shell est bash dans les deux cas, ça pourrait marcher aussi avec un peu de chance.

TG a écrit:

Voilà
Il existe des utilitaires payants pour faire la même chose
Comme ça ne sert pas souvent, un script même un peu lent, ça le fait
Oui, il vaut mieux ne pas le lancer sur le compte en entier mais sinon ça peut être bien utile et je vais effectivement  m’en servir quand j’ai un peu trop de pagaille dans des dossiers dans lesquels j’ai stocké des tas de trucs pour m’en débarrasser provisoirement (depuis des années, quoi…).

Et aussi quand j’ai des fichiers de noms similaires mais je ne sais plus si le contenu est le même ou pas, un cas assez fréquent dans les fichiers des sites où je patche et re-patche vite fait en diverses versions et j’oublie ensuite de faire le ménage.

Eh bien merci pour ce bel effort mené à bon port et partagé !

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   6/2/2016, 21:22

Ca m'a servi à faire le tri dans la doc de mon asso.
Plus de 4Go de données à classer avec une inorganisation totale et des noms de fichiers tenant du n'importe quoi.
J'ai éliminé comme ça plusieurs centaines de fichiers.
Et bien content d'avoir le script quand je tombais sur un ZIP qui me ramenait encore des doublons une fois décompressé. Du coup, j'ai une version du script qui signale la présence de ZIPs dans l'arborescence, histoire de les réhydrater avant de poursuivre le classement.

Là où le script prend vraiment du temps, c'est sur le dossier Images. S'il tombe sur une bibliothèque iPhoto bien dodue, ça mobilise le CPU grave. Mais bon, un ordi, c'est fait pour bosser.

Content de savoir que ça te sera utile.
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   6/3/2016, 08:28

Ah oui, pour le coup du zip qui refait des doublons c’est bien vu, je n’y avais pas pensé mais c’est aussi un cas fréquent. Ce qui change tout par rapport à une recherche classique c’est que ce soit complètement indépendant du nom de fichier et c’est là que ce script va devenir vite indispensable.

Je vais peut-être mettre ça dans un enrobage d’appli avec Platypus pour faire exécuter le script dans une fenêtre lancée normalement. J’ai fait ça pour un script de sauvegarde différentiel sur un disque externe avec une ligne de commande à base de rsync longue comme deux bras. C’est plus simple à lancer comme une appli mac standard que dans un terminal.

Je me demande si j’avais publié ici ce script d’ailleurs. Il me semblait mais peut-être pas. Faudrait que je le fasse, ça servira peut-être à quelqu’un, c’est facile à adapter dans à peu près toute les situations. Je verrai ça en rentrant, là je n’ai pas ça sous la main, je suis en vadrouille avec mon macbook qui ne cause plus que pingouin…

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Re: Rechercher les doublons   6/4/2016, 06:09

Bonne initiative.
Tu m'enverras ça et on mettra en téléchargement pour les MacNOMODiens
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
hr
Légende vivante
Légende vivante
avatar

Nombre de messages : 6477
Age : 63
Planète : Creuse
Matos : iMac alu en OS 10.10 - G4 en OS 10.5 - MacBook Pro Ubuntu - PC en Ubuntu 16.04
Date d'inscription : 19/11/2006

MessageSujet: Re: Rechercher les doublons   6/4/2016, 07:57

Oui, il faut que j’y pense en rentrant.

_______________
On ne fait jamais d’erreur sans se tromper !
L’affaire est dans le sac de Prévert et Prévert
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Rechercher les doublons   

Revenir en haut Aller en bas
 
Rechercher les doublons
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
MacNOMODO :: A i d e  &  d é p a n n a g e :: Le labo (classé X)-
Sauter vers: