Dur de trouver un titre adéquat pour cet article. Voici de quoi il s’agit. je fais de la photographie. Mon appareil enregistre un fichier RAW et un fichier JPG pour chaque prise de vue.
Une fois chez moi, je crée un dossier relatif à ma sortie, puis un sous-dossier RAW et un JPG, puis je mets les fichiers respectifs dans chaque dossier. A ce stade, j’ai donc deux dossiers qui contiennent les mêmes photos. une fois avec l’extension JPG, et une fois avec l’extension CR2.
Nous avons tous la sale habitude de garder les mauvais clicher ad æternam avec les autres. Aussi, j’essaie de me discipliner et dès que les fichiers sont sur mon serveur, je vais dans le dossier JPG et je fais le tri. Les images JPG sont moins volumineuse, et donc l’opération est plus facile et plus rapide qu’avec des fichiers RAW. J’ai développé ce script afin qu’il supprime les fichiers RAW correspondant aux fichiers JPG que j’ai supprimé.
Voici donc ce que ça donne
#!/bin/bash
clear
# Explication de l'utilité du script
printf "Ce script va comparer le contenu des sous-dossiers RAW et JPG du dossier courant. Pour chaque fichier qui a été préalablement supprimé dans le sous-dossier JPG, le fichier RAW correspondant sera supprimé.\n"
printf "\nVous vous trouvez actuellement dans le dossier\n\n`pwd`\n\n"
# Demande de confirmation du dossier courant
read -p "Est-ce bien le dossier que vous souhaitez traiter ? [o/N]" -n 1 -r
echo
if [[ $REPLY =~ ^[Oo]$ ]]
then
# Si la réponse est positive, on récupère la liste des fichiers RAW
for file in `ls RAW`
# Puis on crée une boucle pour chaque fichier trouvé dans le dossier RAW
do
#Définition du nom dans l'extension
filename=$(echo $file | cut -d'.' -f1)
# Vérification de l'existence du fichier JPG
if [ -e JPG/$filename.JPG ]
then
#Si le fichier JPG existe, on souhaite garder le fichier RAW
printf "Le fichier JPG/$filename.JPG existe. Son pendant RAW sera conservé.\n"
else
# Si le fichier JPG n'existe plus, on efface le fichier RAW
printf "\nLe fichier JPG/$filename.JPG a été supprimé. Son pendant RAW va l'être également."
printf "\nSuppresion du fichier `ls RAW/$filename.*`\n"
rm -f RAW/$filename.*
fi
done
fi