Script shell de transfert de photos
Par Juba le jeudi 6 décembre 2007, 00:14 - Linux, Debian, etc. - Lien permanent
Pas sûr que ça en vaille la peine, mais je me permets quand même de mettre en ligne le petit script bash que j'utilise pour transférer les photos depuis mon appareil numérique vers mon PC. Le script en question part du principe que l'appareil est reconnu comme un périphérique de stockage de masse USB et qu'il est automatiquement monté au point de montage indiqué par la variable mount_point
. Il faut également renseigner les variable source_dir
(chemin vers le répertoire dans lequel se trouve les photos à partir du point de montage) et cible_dir
(emplacement des photos sur le PC). Vous aurez également besoin du paquet libjpeg-progs
pour avoir la commande exifautotran
.
Une fois que vous avez tout ça, vous aurez juste à brancher votre appareil et à lancer le script. Celui-ci s'occupera de monter le périphérique, de copier chaque image dans un répertoire nommé selon la date de prise de la photo (au format /home/photos/2007/12
par exemple) et d'effectuer une rotation en fonction de l'orientation horizontale ou verticale contenue dans les données EXIF.
#!/bin/sh mount_point=/mnt/photo source_dir=dcim/100km028 cible_dir=/home/photos mount $mount_point for i in $mount_point/$source_dir/*.jpg; do img=`basename $i` annee=`stat -c %y $i | cut -d '-' -f 1` mois=`stat -c %y $i | cut -d '-' -f 2` cible=$cible_dir/$annee/$mois if [ ! -d $cible ]; then mkdir -p $cible fi echo "Copie de $i vers $cible/$img" cp -i $i $cible/$img exifautotran $cible/$img done; sleep 2s umount $mount_point
Comme d'hab en ces lieux, vous constaterez que c'est du vite fait !
Commentaires
Merci pour exifautotran, je ne connaissais pas !
une petite variante avec imagemagick pour lire la date des donnees exif :
dateTime=`identify -verbose $i | grep DateTimeOriginal | awk '{print $2}'`
an=`echo $dateTime | awk -F':' '{print $1}'`
moisjour=`echo $dateTime | awk -F':' '{print $1$2$3}'`
Sinon, en plaçant ce script directement sur le support USB, et en le nommant autorun.sh, il peut être lancé automatiquement au montage du support !
au revoir !