[Bash] Problème avec locate dans un script
Bonjour à tous,
Je ne sais pas si c'est vraiment le bon forum où poster ça, si je me suis trompé merci au modo qui déplacera ce topic.
Voilà, ça fait très longtemps que j'ai pas touché à un script Bash, là j'en ai besoin et forcément ça coince.
Voici la situation:
J'ai beaucoup de fichiers en vrac dans un dossier qui n'a pas de sous-dossiers.
Sur une partition, j'ai des fichiers qui portent les mêmes noms que ceux en vrac, mais une autre extension, et ceux là sont bien rangés.
Le but est de recréer l'arborescence, à partir d'un certain dossier, des fichiers bien rangés, et d'y copier les fichiers en vrac
Pour ça j'utilise le locate dans mon script, mais il ne retourne rien du tout !! Le voici :
Code:
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 |
Voilà bien évidemment je suis même pas sûr que la synthaxe est bonne.
Ca fait des plombes que je suis sur ce petit script, et ça commence à bien me prendre la tête...
Merci de me venir en aide !