Find vide dans une boucle

Fermé
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 29 août 2014 à 14:56
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 30 août 2014 à 16:37
Bonjour,
je cherche les fichiers que j'ai en double dans une arborescence afin de les comparer et de les supprimer.
find . -iname "*.jpg" -printf '"%f"\n'  | sort | uniq -d>liste_double

j'ai donc une liste des fichiers que j'ai en double. Je met des guillemet dans le printf car mes fichiers peuvent contenir des espaces.
Maintenant, j'aimerai les comparer, je fais ça :
while read file
  do
      echo cherche $file
      echo diff -s  $(find . -name "$file" -printf '"%p" ')
  done<liste_double

Problème, le find ne retourne rien, et je ne comprend pas pourquoi.


1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
29 août 2014 à 15:01
Salut,

C'est normal qu'il n'y ait qu'une entrée pour la commande
diff
(celle retournée par le find) ???
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
29 août 2014 à 16:29
oui, car find trouve deux fichiers. Après, c'est peut être une façon compliquée de faire la chosE.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
29 août 2014 à 16:40
Et si tu essayais en comparant leur somme MD5 plutôt ?

find . -iname "*.jpg" -exec md5sum {} \; | sort | uniq -D -w 32
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
30 août 2014 à 15:13
Hum... là, tu va comparer toutes les images ensemble non ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
30 août 2014 à 15:18
Euh... non, je fais juste un md5 sur chaque fichier et à la fin je trie le tout et ne garde que les doublons.

$ find /home/jp/Images/ -type f -iname "*.png" -exec md5sum {} \; | sort | uniq -D -w 32
12dc7f46c1615c0b5b8d9be1de8c5c0e /home/jp/Images/Shutter/ccm2.png
12dc7f46c1615c0b5b8d9be1de8c5c0e /home/jp/Images/Shutter/Sélection_004.png
3bd558986c9e9d62ed4c1a633263e10c /home/jp/Images/gkrellm/gkrellShoot_2013-05-17_171008.png
3bd558986c9e9d62ed4c1a633263e10c /home/jp/Images/IPCop/IPCop2/gkrellShoot_2013-05-17_171008.png
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
30 août 2014 à 15:36
ok, c'est assez génial, si je comprend bien, ça permet même de comparer des photos identiques n'ayant pas le même nom !
Merci, beaucoup, c'est une superbe idée.

Par contre, j'ai des photos différentes, mais avec le même nom, donc ma demande est toujours d'actualité.
0