Outils pour utilisateurs

Outils du site


Action disabled: diff
scriptshell

Ceci est une ancienne révision du document !


#/bin/bash #(ne pas utiliser sh car l'IFS \n ne fonctionne pas!!!! ) #Auteur Bertrand VANDEPORTAELE 2013 #Ce script permet de construire une arborescence dans un dossier vide (définit par $DEST) dans laquelle des liens dynamiques
#vont pointer vers des fichiers/dossiers respectant la même arborescence mais sur plusieurs disques distincts
#Utile pour un média center avec plusieurs disques, on peut ainsi lister dans une même dossier le contenu des différents disque et naviguer comme s'il n'y avait qu'un disque
#exemple: 2 disques durs /media/HD1 et /media/HD2, contenant chacun les dossiers hd et 3D
#on cree sur ~/films/ les dossiers hd et 3D
#puis on crée des liens symboliques de tous les fichiers /media/HD1/hd et /media/HD2/hd vers ~/films/hd
#                               et  de tous les fichiers /media/HD1/sd et /media/HD2/sd vers ~/films/sd
#pour cela régler
#DEST="~/films/"
#LISTCAT=$'hd\nsd\n' #LISTDRV=$'/media/HD1\n/media/HD2\n'


# il faut que la partition destination supporte les liens dynamiques

#http://www.commentcamarche.net/faq/5027-comment-lire-un-fichier-ligne-par-ligne
#http://bash.cyberciti.biz/guide/$IFS

old_IFS=$IFS  # sauvegarde de l'ancien séparateur de champ  
IFS=$'\n' #le séparateur par defaut (espace) ne va pas car les noms de fichiers listés peuvent en contenir mais doivent être traités en une seule fois

            #on règle un nouveau séparateur de champ, le caractère fin de ligne  

#emplacement pour stocker les liens dynamiques, doit pointer sur un dossier vide car on va y effacer tout les contenus des #dossiers catégories DEST=“/home/bvdp/films/” #liste de noms de dossiers correspondant à des catégories #il faut le $  au début pour que le \n soit interpreté correctement comme un IFS
LISTCAT=$'hd\nsd\n3D\nseries\n3Dsound\n' #liste de noms de dossiers ou rechercher les catégories LISTDRV=$'/media/HD2TO/\n/media/HD2TO2/\n/media/HD2TO3/\n/media/HD2TO4/\n/media/HD3TO1/\n/media/JY500GO\n'

echo destination=$DEST

#——————————————————– #——————————————————– #——————————————————– #——-suppression des fichiers existants et création des dossiers si besoin————— rm $DEST/lnscript		
for i in $LISTCAT do echo $i
rm $DEST/$i/*
mkdir $DEST/$i #au cas ou ils n'existeraient pas
done
#--------------------------------------------------------
for i in $LISTCAT do echo $i
#echo "next"
for j in $LISTDRV do echo $j
#echo "noxt"
for fich in `ls $j/$i`
do
echo "ln -s \"$j/$i/$fich\“ \”$DEST/$i/$fich\"" >>$DEST/lnscript echo $fich
done
done
done
#--------------------------------------------------------

bash $DEST/lnscript #éxecute le script de génération des liens symboliques

IFS=$old_IFS # rétablissement du séparateur de champ par défaut

scriptshell.1387210374.txt.gz · Dernière modification : 2013/12/16 17:12 de bvandepo