1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| #!/bin/bash
#MàJ pour le locate
updatedb
# Dossier où ya les fichiers en vrac
DossierSource="/media/Musiques/test/"
# Dossier où on va mettre les copies bien rangées
DossierDestination="/media/Musiques/Musiques/"
# Dossier qui contient les fichiers bien rangés
DossierSrch="/media/Musiques/"
# pour les espaces dans les noms des fichiers
IFS=$'\'
# parcours des fichiers en vrac
Fichiers="$(ls ${DossierSource})"
for File in ${Fichiers}; do
if [ "${File}" != "." ] && [ "${File}" != ".." ] ; then
# test
echo $File
#jusque là pas de soucis, chaque fichier est bien écrit
FilesFound="$(locate "${File}")"
# test
echo $FilesFound
# là ya rien du tout qui s'affiche !!!!!! du coup la suite n'est pas exécutée
for FF in ${FilesFound}; do
BasePath="$(dirname ${FF})"
if [ $BasePath != "${DossierSource}" ] && [ $BasePath != "${DossierDestination}" ] ; then
# pour la ligne du dessous c'est pas propre, je sais pas comment faire autrement pour
# enlever du chemin trouvé le DossierSrch
NewBP=$BasePath | cut -c${#DossierSrch}-1000000
target="$DossierDestination$NewBP/"
source="$DossierSource/$File"
if [ ! -d 'dirname $target' ] ; then
mkdir -m 755 -p $(dirname $target)
fi
cp -Rfp $source $target
fi
done
fi
done
exit 0 |
Partager