Recherche à l'aide d'une fonction récursive
Salut,
j'ai essayé de créer un script qui me permet de trouver la liste de tous les répertoires qui contiennent le fichier config. La recherche commence dans le répertoire passé en paramètre au script. La fonction rechercheRecursiveDossier parcourt les sous-répertoires (par ex. A B C D) du dossier passé en paramètre. Si le fichier config se trouve dans le sous-répertoires "A" la fonction n'ira pas chercher le fichier config dans les sous-répertoires de "A" mais elle passera au sous-répertoire "B". Si maintenant le répertoire "B" ne possède pas le fichier config alors la fonction va chercher dans les sous-répertoires de "B" et ainsi de suite.
Voici mon code :
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
|
#!/bin/bash
rechercheRecursiveDossier()
{
for line in `find "$1" -mindepth 1 -maxdepth 1 -type d`
do
if verifDossier "$line" ;then
tabRep[${#tabRep[*]}]="$line"
else
tabTemp=$(rechercheRecursiveDossier "$repertoire")
tabRep=("${tabRep[@]}" "${tabTemp[@]}")
fi
done
echo "$tabRep"
}
verifDossier()
{
if [ ! -f "$1/config" ] ;then
return 1
fi
return 0
}
n=$(rechercheRecursiveDossier $1)
echo "$n" |
Et voici les erreurs que j'obtiens lorsque je teste mon script :
Code:
1 2 3 4
|
find: impossible de chercher "": Aucun fichier ou dossier de ce type
find: impossible de chercher "": Aucun fichier ou dossier de ce type
find: impossible de chercher "": Aucun fichier ou dossier de ce type |
Si vous avez des idées, n'hésitez pas :p Ou bien si vous avez un autre moyen pour le faire.
Merci d'avance