Bonjour,
Nouveau sur ce forum je vous remercie d'avance pour l'aide que vous pourrez me porter.

Problème :
Je souhaite supprimer tous les dossiers d'un répertoire sauf ceux des membres du groupe qui ont un répertoire qui porte leur nom. Je ne souhaite pas supprimer les dossiers commun à tous.
Comme j'ai plusieurs serveur de ce type et que les dossiers sont assez nombreux et différents en fonction des membres, je souhaite automatiser cette tache.

Début de solution:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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/sh
 
echo " Purge du /repertoire " && sleep 1 &&
echo "Tapez le nom de la ville " && read ville &&
echo "Tapez le nom du COMMUN en respectant la casse " && read commun &&
echo "Tapez le nom d'un dossier particulier à garder (ex: gestion)" && read dossier1 &&
echo "Tapez le nom d'un  second dossier particulier à garder (ex: scan)" && read dossier2 &&
 
#recherche des membres du groupe et export vers ville.txt
getent group $ville | sed -e "s/,/ \n/g" |cut -d':' -f4 > /ville.txt
 
#ajout du commun au fichier ville.txt
echo $commun >> /ville.txt
 
#ajout du dossier1 au fichier ville.txt
echo $dossier1 >> /ville.txt
 
#ajout du dossier2 au fichier ville.txt
echo $dossier2 >> /ville.txt
 
#liste le nombre de ligne du fichier ville.txt
ligne=`wc -l /$ville.txt |cut -f1 -d' '`
 
echo " En comptant le commun et les dossiers spécifiques, voici le nombre de dossier à garder " && sleep 1 &&
echo $ligne 
echo " On garde les dossiers suivants" && sleep 1 &&
cat /ville.txt
echo " le reste on supprime " && sleep 1 &&
ville=`cat /ville.txt`
Je pensais donc faire un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
find /repertoire -type d -path  -name $ville -o -prune -exec rm -Rf {} ;\
mais ça ne fonctionne pas. Il ne veut pas de ma variable.
En gros il me manque la lecture du fichier ville.txt pour l'exclure de la recherche.
Je me demande du coup si c'est la bonne démarche.
Encore merci pour votre aide. (J'ajoute que je suis néophyte)