alors je pense avoir trouvé... ensuite faut améliorer le concept... et s'adapter aux retours de exiftools.
je lance la commande pour classer , je préfere copier les fichiers...
exiftool -v2 -o . -'filename<datetimeoriginal' -d '%Y/%m%B/%Y-%m-%d/img_%Y-%m%B-%d_%H-%M-%S_%A.%%e' "2016-03-17_capture job-0018.NEF" > trace 2> erreur
j'envoie dans erreur les messages d'erreur , surtout pour le cas ou le fichier renommé et déplacé soit dejà présent ce qui provoque aucun message à l'ecran mais les deux fichiers se retrouvent dans les erreurs.
je vais faire pour la trace normale...
Setting new values from 2016-03-17_capture job-0019.NEF
Writing File:FileName
Writing File:FileName
'2016-03-17_capture job-0019.NEF' --> '2016/03mars/2016-03-17/img_2016-03mars-17_18-37-34_jeudi.NEF'
Rewriting 2016-03-17_capture job-0019.NEF...
Nothing changed in 2016-03-17_capture job-0019.NEF
1 image files copied
j'utilise la ligne suivante
'2016-03-17_capture job-0019.NEF' --> '2016/03mars/2016-03-17/img_2016-03mars-17_18-37-34_jeudi.NEF'
pour extraire les fichiers destination et le fichier initial et c'est via la commande sed.
cat trace | grep "^'$f'" | sed -r "s/^'($f)' --> '(.*)'.*$/$f#\2/g" | cut -d "#" -f 1 # ou -f 2 pour avoir la destination...
ensuite j'ai la destination et donc je cherche dans le fichier .xmp joint le nom de fichier de depart pour le remplacer par la destination.
et ensuite je copie le fichier xmp dans le dossier dirname du fichier image copié.
dest=$(cat trace | grep "^'$f'" | sed -r "s/^'($f)' --> '(.*)'.*$/$f#\2/g" | cut -d "#" -f 2)
g=$(basename "$dest") # endroit ou le fichier est copié ou déplacé...
echo "fichier destination : ${g}.xmp"
cat "$f.xmp" | grep "$f" | sed -r "s/$f/$g/g" # pour le moment j'affiche la modification du fichier xmp pour envoyer la commande.