Bon, c’est pas tout d’avoir un appareil photo numérique, mais de temps en temps, faut bien les mettre sur disque dur pour faire de la place sur la carte.
Pis après, faut s’y retrouver facilement.
Alors, j’ai écrit deux scripts (en fait, trois).
Le premier recopie « intelligemment » les photos de la carte sur le disque dur (c’est à dire qu’il ne transfère que ce qui est plus récent sur le carte que sur le disque :
#!/bin/sh
rsync -u /media/sdd1/DCIM/101_PANA/* /home/commun/Images/PhotosNumeriques/temporaire
Celui là est assez trivial.
L’autre va extraire les informations EXIF des fichiers pour connaitre la date de prise de vue (avec imagemagick), va déplacer le fichier dans la structure arborescente année/mois/jour, en préfixant le nom du fichier de annéemoisjour, et en créant un lien symbolique de ce fichier vers le fichier originel (pour éviter que l’opération de synchro ne recopie le fichier). L’idée, c’est que, souvent, des photos prises le même jour se retrouvent ensemble lorsqu’elles sont classées.
Le script :
#!/bin/bash
identify -format "%[EXIF:DateTime]" $1 | sed -r -e "s/.*([0-9]{4}):([0-9]{2}):([0-9]{2}).*/\1\n\2\n\3/g" > $1.info
annee=`sed -n 1p $1.info`
mois=`sed -n 2p $1.info`
jour=`sed -n 3p $1.info`
rm $1.info
commencePar=`echo $1 | grep $annee$mois$jour\.`
if [ -z $commencePar ]; then
if [ ! -r $annee ]; then
mkdir $annee
fi
if [ ! -r $annee/$mois ]; then
mkdir $annee/$mois
fi
if [ ! -r $annee/$mois/$jour ]; then
mkdir $annee/$mois/$jour
fi
echo $1 > filename.txt
fichier=`sed -r -e 's/.*\/(.*)/\1/g' filename.txt`
chemin=`sed -r -e 's/(.*)\/.*/\1/g' filename.txt`
rm filename.txt
mv $1 $chemin/$annee/$mois/$jour/$annee$mois$jour.$fichier
ln -s $chemin/$annee/$mois/$jour/$annee$mois$jour.$fichier $1
fi
et son cousin qui l’appelle :
#!/bin/sh
find . -maxdepth 1 -name 'P*' -type f -exec rename.sh {} \; -print
16 juin 2006
Scripts pour ranger les photos
Aucun commentaire »
No comments yet.
RSS feed for comments on this post. | TrackBack URI