Bonjour à tous, je souhaite réaliser un script qui parcourt toute mon arborescence et qui supprime tout les fichiers cachés (ex : ".git") sauf certains (ex : ".@__thumb").
J'ai fais un script qui parcourt mon arborescence et qui supprime tout mes fichiers commençant par un ".".
Le voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
find . -depth -type d -name '.*' |
while read f
   do
                dn=`dirname "$f"`
                bn=`basename "$f"`
                mv "$dn/$bn" "$dn/${bn//.}"
done
J'ai voulu ensuite l'adapter et ajouter une condition pour que lorsque mon dossier/fichier s'appelle ".@__thumb" par exemple (qui est un dossier que je ne veux pas supprimer) il ne supprime pas le ".". J'ai obtenu ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
thumb=".@__thumb"
echo $thumb
 
find . -depth -type d -name '.*' |
while read f
   do
        if [[ $bn != $thumb ]]
        then
                dn=`dirname "$f"`
                bn=`basename "$f"`
                mv "$dn/$bn" "$dn/${bn//.}"
        fi
done
Cependant, ma condition semble ne servir à rien. Mon script supprime quand même mon dossier ".@__thumb". Auriez-vous une idée d'où pourrait venir le problème ou une idée d'amélioration ?
Je ne sais pas si j'ai été clair dans mon explication. Si vous avez des questions, n'hésitez pas.
En vous remerciant.