Hello !!!! 😃
Je viens tout juste de terminé (en partie) un script de rangement de fichiers musicaux.
C'est un script très simple qui lancé à partir d'un dossier, va parcourir tous ses dossiers et sous-dossiers, et copier chaque fichiers musicaux dans un répertoire donné selon une arborescence artiste/album/fichier.
Pour ce faire il utilise les tags de chaque fichiers grâce à totem, et plus particuilièrement totem-video-indexer.
C'est un de mes tout premier scripts un tant soit peu long,
C'est surement un peu brouillon mais je ne demande qu'à apprendre !
Dites moi ce que vous en pensez et les améliorations envisageables.
Je compte ajouter par la suite des amélioration comme, rajouté des paramétres permettant de choisir entre déplacer ou copier les fichier, choisir un type d'arborescence différents,
et plus goblalement faire en sorte que la chose soit un chouïa plus comptatible
V'la l'script :
#! /bin/bash
MUSIC_DIR=/home/$USER/Musiques
pwd=`pwd`
for i in *
do
#variable validant la copie
copie=1
# Cas d'un dossier, exploration récurcive
if [ -d "$i" ]
then
echo -e "rentrant dans le dossier : \033[31m $i \033[30m"
cd "$i"
/home/$USER/range.sh
echo -e "sortant du dossier : \033[31m $i \033[30m"
cd ..
else
# Récupération des tag
tag=`totem-video-indexer "$i"`
titre=`echo "$tag" | grep TITLE | cut -f 2 -d =`
artiste=`echo "$tag" | grep ARTIST | cut -f 2 -d =`
album=`echo "$tag" | grep ALBUM | cut -f 2 -d =`
num=`echo "$tag" | grep TRACK_NUMBER | cut -f 2 -d =`
res_codec=`echo "$tag" | grep AUDIO_CODEC | cut -f 2 -d =`
# Traitement du codec...
# En attente d'une solution plus général
if test "$res_codec" = "MPEG 1 Audio, Layer 3 (MP3)"
then
codec="mp3"
elif test "$res_codec" = "MPEG-4 AAC audio"
then
codec="m4a"
elif test "$res_codec" = "Vorbis"
then
codec="ogg"
else
# codec inconnu : pas de copie
copie=0
fi
nom=$num" - "$titre"."$codec
# Traitement en cas d'info inconnu
if [ -z "$titre" ]
then
nom="(a_trier) $i.$codec"
fi
if [ -z "$artiste" ]
then
artiste="a_trier"
fi
if [ -z "$album" ]
then
album="a_trier"
fi
if test $copie -eq 1
then
# Création des dossier si possible
cd $MUSIC_DIR
if [ ! -e "$artiste" ]
then
mkdir "$artiste"
echo -e "Dossier \033[32m$artiste \033[30mcréé"
fi
cd "$artiste"
if [ ! -e "$album" ]
then
mkdir "$album"
echo -e "Dossier \033[32m$album \033[30mcréé"
fi
cd "$album"
if [ ! -e "$nom" ]
then
echo -e "copie de \033[34m$i \033[30mvers \033[34m$artiste/$album \033[30msous \033[32m$nom \033[30m"
cp "$pwd"/"$i" "$nom"
fi
cd "$pwd"
fi
fi
done