Agencer les fichiers pour une lecture séquentielle


Trier l’arborescence des fichiers pour une lecture séquentielle


 



Le gestionnaire de fichiers d’un ordinateur permet de manipuler et de trier facilement les fichiers du disque dur.
Certains baladeurs mp3 permettent de «tagger» les fichiers afin de les trier, le mien garde l’ordre naturel d’enregistrement.

L’ordre des fichiers peut-être très important dans certains cas, une série de fichiers classés par chapitres composant un livre audio doit impérativement respecter l’organisation établie initialement.
Avec un ordinateur on peut facilement renommer les fichiers avec un compteur post ou pré fixé qui permet un tri par ordre alphabétique sur le nom, mais cet ordre ne sera pas forcément suivi lors de la recopie sur le baladeur et l’on risque de retrouver l’arrangement des fichiers totalement bouleversé.
Si la liste est modeste, on peut recopier les fichiers un à un, mais cela peut devenir très pénible si le nombre de fichiers devient considérable, la copie manuelle est abandonnée par obligation.

Sous Linux, un petit script bash va permettre de faciliter considérablement le travail de recopie avec l’agencement personnel établi.


La première étape consiste à créer un fichier texte avec l’ensemble des noms de fichiers déjà trié.

find répertoire >liste.txt

On peut aisément modifier cette liste avec un éditeur si nécessaire (une ligne par nom de fichier)
Quand la liste correspond à ce qu’on veut obtenir, on peut ensuite procéder à la copie sur le lecteur mp3

cp liste lecteur_destination

exemple :

cp $(cat liste.txt) /media/disk_mp3/livres

 

 

 

Le petit script suivant est assez intraitable quand aux espaces dans les noms des fichiers, mais n’importe quel outil de renommage en masse permet d’éviter d’en insérer et surtout de les soustraire ou de les transformer en signe souligné _ (sous le chiffre 8 avec la plupart des claviers)

La première option permet de créer un fichier texte avec le chemin complet des fichiers à recopier, cette liste est normalement triée mais si dans l’éventualité où cela ne correspond pas, la deuxième option permet un tri alphabétique sur l’ensemble des lignes du fichier.
La troisième option accède à un éditeur de texte, on peut ainsi personnaliser la liste complète ou en vérifier l’organisation.
La quatrième option va créer un nouveau répertoire sur le baladeur mp3 et la cinquième exécute réellement la recopie dans le répertoire nouvellement créé.

 

Voici le script


 #!/bin/bash

# --------------------------------------
# fonction création du fichier liste.txt
# --------------------------------------
creliste() {
find /home/mm/script/agencemnt/* > /home/mm/script/liste.txt
}

# --------------------------------------------------------
# fonction tri du fichier liste.txt
# --------------------------------------------------------
triliste() {
sort /home/mm/script/liste.txt > /home/mm/script/listetri.txt
rm /home/mm/script/liste.txt
mv -f /home/mm/script/listetri.txt /home/mm/script/liste.txt
}

# --------------------------------------------------------
# fonction éditer le fichier liste.txt
# --------------------------------------------------------
editliste() {
gedit /home/mm/script/liste.txt
}

# --------------------------------------------------------
# fonction création d'un nouveau répertoire sur la clé mp3
# --------------------------------------------------------
crepert() {
clear
echo
echo
echo --------------------------------------------------
echo Il faut que le baladeur mp3 soit installé
echo --------------------------------------------------
echo
echo "Veuillez saisir le nom du nouveau répertoire"
echo
read nouvrepert
mkdir "/media/disk_mp3/livres/$nouvrepert"
}

# --------------------------------------------------------
# fonction copie des fichiers sur la clé mp3
# --------------------------------------------------------
copyliste() {
clear
echo "-----------------------------------------------------------------"
echo "Patienter jusqu'à réapparition du menu principal"
echo "-----------------------------------------------------------------"
cp $(cat /home/mm/script/liste.txt) "/media/disk_mp3/livres/$nouvrepert"
}

# -----------------
# Boucle principale
# -----------------

while true ;
do
clear
echo
echo "------------------------------------------------------------------------------"
echo "1-Création d'un fichier liste.txt avec le contenu du répertoire /agencemnt/"
echo "2-Un tri alphabétique peut-être effectué directement sur le fichier"
echo "3-On peut également éditer le fichier manuellement"
echo "5-La copie s'effectuera vers /media/disk_mp3 vers nouveau répert s'il est créé"
echo
echo "  Les espaces ne sont pas tolérés dans les noms des fichiers"
echo "------------------------------------------------------------------------------"
echo
echo
echo "***********************************"
echo "*            M E N U              *"
echo "***********************************"
echo "1 - Création du fichier 'liste.txt'"
echo "2 - Tri du fichier 'liste.txt'"
echo "3 - Editer le fichier 'liste.txt'"
echo "4 - Création d'un nouveau répertoire sur la clé mp3"
echo "5 - Copie les fichiers vers la clé mp3"
echo "6 - Quitter"
read choix
case $choix in
1) creliste;;
2) triliste;;
3) editliste;;
4) crepert;;
5) copyliste;;
6) break
esac
done



20/07/2012
0 Poster un commentaire

Ces blogs de Informatique & Internet pourraient vous intéresser