1. Renommer des fichiers photos
1.1. Description
Les photos prises par mon téléphone ont des noms pas très jolis : IMG_20160312_124305306.jpg, etc.. Pour les archiver, j'aimerais les renommer en WeekEnd_2016-02-12_16-35-12.jpg, WeekEnd_2016-02-12_16-36-24.jpg, etc.
1.2. Objectif
Dans l'exemple précédent, c'est l'utilisateur qui choisit explicitement le préfixe WeekEnd. La date et l'heure sont automatiquement ajoutées au nom de fichier.
Voici un exemple d'utilisation :
$ source ./renomme.sh
$ ls *.jpg
IMG_123456789.jpg IMG_928332498.jpg IMG_987654321.jpg
$ renomme Lac *.jpg
IMG_123456789.jpg ==> Lac_2015-08-30_16-52-52.jpg
IMG_928332498.jpg ==> Lac_2015-09-04_16-34-07.jpg
IMG_987654321.jpg ==> Lac_2015-08-30_16-53-27.jpg
$ ls *.jpg
Lac_2015-08-30_16-52-52.jpg Lac_2015-08-30_16-53-27.jpg Lac_2015-09-04_16-34-07.jpg
1.3. Précisions
Vous pouvez utiliser les photos de cette archive (prises sur Wikipedia) pour tester votre fonction.
Reportez vous aux sections
Vous aurez besoin de récupérer l'extension d'un fichier contenu dans une
variable. Pour ceci, l'incantation magique suivante convient : si la variable
s'appelle img
, on peut faire
ext=${img##*.}
Attention, dans le shell, le symbole _
peut faire partie
du nom d'une variable. Pour cette raisson, $img_$prefix
ne sera
pas interprété comme "la variable $img
suivie d'un _
suivi de la variable $prefix
", mais comme "la variable
$img_
(qui n'existe probablement pas) suivie de la variable
$prefix
". La solution est de mettre le nom de la variable entre
accolades : ${img}_$prefix
.
1.4. Pour aller plus loin
-
Ajouter un compteur pour différencier les photos qui sont prises pendant la même seconde. (C'est courant lorsque vous utilisez votre appareil en mode rafale.)
-
etc.