Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Des centaines de fichiers xmp ratachés a rien
#18
(01-10-18, 13:48)jpverrue a écrit :
(01-10-18, 12:39)philippus a écrit : Je reviens sur le sujet, car le souci c'est que lorsque que l'on met une image à la poubelle avec darktable, ce dernier supprime l'image mais ne supprime pas le XMP qui lui est rattaché !!!

Il en ressort qu'on se retrouve dans ce cas avec un énorme paquet de fichiers XMP qui ne servent plus a rien.

La question est : comment les suprimer automatiquement ?

Y-a-t-il une combine, un truc que je n'ai pas vu ? car manuellement c'est presque impossible a faire, il doit bien y avoir entre 2 et 3000 fichiers a suprimer !!!

Sur quelle plateforme travailles-tu, et avec quelle version de DT ? Car je viens de vérifier sur mon Opensuse : si je mets un fichier à la corbeille avec DT, ce sont bien le raw ET le xmp qui sont "jetés". Bizarre...

Sinon, sous Linux, l'écriture de quelques lignes de script permettent de régler le problème en quelques secondes :
Code :
#!/bin/bash
# attention: ce code ne fonctionne pas avec les fichiers xmp de LR
# qui n'ont pas la même structure de nom que ceux de DT

for i in *.xmp ; do
 if test ! -e ${i%".xmp"} ; then
   rm $i
 fi
done
Sous Windows, je ne sais pas...


J'ai testé le script et il ne fonctionne pas chez moi (erreur ligne 6 trop d'arguments)

(01-10-18, 17:54)manu a écrit :
(30-09-18, 11:02)philippus a écrit : Bonjour,

Etant sous linux, je serai interessé de connaitre ces commandes afin de faire un peu le ménage dans ces XMP orphelins !!

Merci

En 1er lieu une sauvegarde de tous les xmp ne sera peut-être pas superflue...

Sais-tu lancer un terminal (Ctrl + Alt + t) et aller sur le répertoire racine des photos (cd ton-repertoire-racine-des-photos) ?

Ensuite en deux commandes, en supposant que tes fichiers XMP sont nommés .xmp (en minuscules, sinon remplacer par des majuscules dans les commandes), il suffit de copier (Ctrl+c) et coller (Maj+Ctrl+v) dans le terminal :

Code :
find . -name "*.xmp" -exec bash -c 'echo "{}" | sed "s/.xmp//g"' \; > /tmp/photos
while read f ; do if [ ! -e "$f" ]; then echo "$f.xmp" ; fi ; done < /tmp/photos

Ça ne supprime rien ! Ça affiche la liste des fichiers XMP "orphelins".

Si ça te liste bien effectivement ce que tu attends, i.e. la liste des XMP non liés aux photos qu'ils prétendent, alors :

Code :
while read f ; do if [ ! -e "$f" ]; then rm -f "$f.xmp" ; fi ; done < /tmp/photos

Doit y avoir d'autres méthodes, l'important c'est sans doute que ça vire ce qu'il faut.

J'ai aussi testé ces 2 codes dans le terminal, le premier ne fonctionne pas, il me liste des xmp qui sont rattaché à des images !!

Par contre le deuxième m'a bien suprimé les xmp orphelins ... donc je le garde bien au chaud !!

Merci de vos réponses
darktable 3.4.1 + darktable 3.5 + Nikon D7200 + Nikon D750

Répondre


Messages dans ce sujet
RE: Des centaines de fichiers xmp ratachés a rien - par philippus - 04-10-18, 16:04

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)