# Demande conseils pour script effacement récursif de dossiers

**URL:** <https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836 "2016-02-21T18:01:46Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/1 "2016-02-21T18:01:46Z")

</div>

Suite à mes essais de création de script à la fin de [ce fil](https://www.debian-fr.org/supprimer-des-sous-repertoires-vides-t44508.html), j’ouvre cet autre fil en espérant obtenir des critiques et conseils.

Le but était de supprimer récursivement les dossiers vides en partant d’un dossier racine, et voila ce que j’ai fait:

[code]#!/bin/bash

# En paramètre, le dossier de départ pour la recherche/suppression récursive des dossiers vides

find “$1” -type d -empty -print0 | xargs -r -0 rmdir  
if [$(find “$1” -type d -empty)]; then  
$0 "$1"  
fi[/code]  
Je ne doute pas qu’il doit y avoir beaucoup de défauts que je ne vois pas car je n’ai jamais eu de cours de programmation,  
donc je n’y connais pas grand chose: j’ai juste bricolé de l’ASM sur 8088 et programmé des petites routines avec “debug du DOS 6.22” pour 8255, 8042, 8248, 8253, 16450, µPD765A, en gros, que du bas niveau, basé sur mes connaissances en électronique.

Tout conseil pour rendre plus propre ce script sera très apprécié.  
Si vous pouviez me transmettre des liens que vous jugerez intéressants.

Merci d’avance.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/2 "2016-02-21T18:01:48Z")

</div>

```auto
ou
[code]find "$1" -depth -type d -empty -exec rmdir -p {} \;[/code]
devraient faire ce que tu cherche
```

ou

```auto

```

devraient faire ce que tu cherche

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/3 "2016-02-21T18:01:48Z")

</div>

Le truc avec la mono ligne c’est que si un répertoire devient vide suite à une suppression précédente tu n’as pas l’assurance qu’il soit effacé lui aussi ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit")  
Donc il est nécessaire d’utiliser une boucle «&nbsp;while&nbsp;» pour parfaitement épurer l’arborescence ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool")

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/4 "2016-02-21T18:01:49Z")

</div>

`michel@local /tmp/tmp.dmap1ynoOe % mkdir -p a/b/c
michel@local /tmp/tmp.dmap1ynoOe % du -a
0	./a/b/c
0	./a/b
0	./a
0	.
michel@local /tmp/tmp.dmap1ynoOe % find -depth -type d -empty -delete
michel@local /tmp/tmp.dmap1ynoOe % du -a
0	.`  
🙂

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/5 "2016-02-21T18:01:51Z")

</div>

Il en devient chiant ce Michel, il a toujours le dernier mot 😒  
😆😆😆  
 ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/6 "2016-02-21T18:01:52Z")

</div>

Merci, beaucoup pour vos conseils, je vais me documenter sur ces options [strike]et refaire ce script en conséquence[/strike].  
EDIT: en fait il n’y a même pas besoin de script car si le nom du dossier de départ est “aeffacer”, la ligne de commande `find aeffacer/ -depth -type d -empty -delete` suffit.  
🙂 Si tous les mecs “chiants” l’étaient de cette façon, ça serait le pied, alors vivent les mecs “chiants”. 🙂

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/7 "2016-02-21T18:01:53Z")

</div>

Ce qui n’empêche pas d efaire un script avec un seul mot à taper, au lieu de la ligne.

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/8 "2016-02-21T18:01:53Z")

</div>

J’essaie :  
proposition de nom pour ce script: [rmemptydirs.sh](http://rmemptydirs.sh) (ou [rmed.sh](http://rmed.sh))

[code]#!/bin/bash

# Pour supprimer les dossiers vides contenus dans un dossier

# En paramètre, le dossier de départ pour la recherche/suppression récursive des dossiers vides

contenant=${1:-"$PWD"}  
if [-d “$contenant”]; then  
read -p "Pour confirmer votre demande de suppression des dossiers vides contenus dans le dossier “$contenant”, entrez “oui”: "  
if [“$REPLY” == “oui”]; then  
echo "$PWD effacement des dossiers de “$contenant” en cours …"  
find “$contenant” -depth -type d -empty -delete  
else echo "opération anullée."  
fi  
else  
echo "===================================================================="  
echo -e "Vous devez en paramètre un nom de DOSSIER contenant :\n"  
echo -e "Exemple: $0 nom\_du\_dossier\_contenant\n"  
echo "===================================================================="  
fi  
[/code]

je suis en train de chercher comment utiliser les $OPTIONS (genre “-i”)pour demande de confirmation ou pas.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/9 "2016-02-21T18:01:54Z")

</div>

Moi, comme je suis fainéant, je ne mets pas d’extension, donc, “rmed”, que ke place dans /usr/local/bin.  
Quand ce sont des scripts sans grand danger,je les “chown” root:adm et comme je suis dans le groupe adm, en règlant les bons droits, je peux exécuter.  
Si c’est un script plus chaud, minimum de droits, root:root et, éventuellement une ouverture ‘sudo’.

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/10 "2016-02-21T18:01:55Z")

</div>

Merci beaucoup pour ces conseils.

Il me faut d’abord lire et pratiquer un peu tout [ça](http://aral.iut-rodez.fr/fr/sanchis/enseignement/bash/) si je veux pouvoir poser des question pertinentes afin d’espérer avoir des réponses.  
Si tu as d’autre liens à me transmettre, je suis preneur.

Merci encore.

Je suis aussi un fainéant, mais je crois que c’est de naissance, et même que j’ai pas du tout envie de changer à ce sujet.  
Même si c’est des fois très fatiguant de chercher à en faire le moins possible, quel plaisir de voir son travail s’exécuter ensuite en ayant fournis un moindre effort.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/11 "2016-02-21T18:01:55Z")

</div>

> [@ricardo](#):
>
> Moi, comme je suis fainéant[…]

Tu parle, je suis devenu golfeur. Quand j’ai besoin de plus d’une ligne pour faire quelque chose, j’ai tendance à penser que j’utilise le mauvais langage (à plus de 10 : j’utilise le mauvais langage…).

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/12 "2016-02-21T18:01:57Z")

</div>

j’ai marqué ce fil comme résolu, car maintenant, je vais passer à une autre étape consistant à faire de ce script quelque chose d’acceptable dans le dossier “/usr/local/bin”.

AMHA, il manque encore :  
Une fonction pour “parser” la ligne de commande et en extraire les options “-i” “-s” “–help” et peut-être plus…  
Une fonction “usage” si option --help demandée ou paramètres manquants dans la ligne de commande d’appel.  
Utiliser “which” pour vérifier si les commandes nécessaires (rmd et find … pour l’instant) au script sont accessibles (et dans quel dossier elles sont).  
Vérifier les droits utilisateur pour les commandes et les dossiers à supprimer.  
Une fonction pour afficher les dossiers effectivement supprimés (ou “à supprimer” si simulation demandée avec l’option “-s”) par le script.  
Un garde fou pour éviter la suppression de dossiers vides mais indispensables au système.  
Récupérer et traiter les codes d’erreur des programmes utilisés (find rmd).  
Trouver quels sont les codes d’erreurs de sortie que ce script devrait renvoyer.

Et tout ce que je ne sais pas encore et que peut-être les programmeurs me conseilleront d’ajouter pour en faire quelque chose de “propre”.

Un grand MERCI à tous ceux qui m’ont aidé dans ce fil.

@ MisterFreez  
Je bénéficie de l’AAH, alors pour le golf, vu que j’ai déjà un handicap, quoi-que, avec un script comme ça, j’étais plutôt très très mal PAR…tis, surtout que sur un green comme Linux, c’est plutôt la formule “stroke-play”, le “match play” c’est plutôt pour les windowziens et autres voleurs de fruits (pauvre Alan, s’il savait.).

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 21, 2016, 6:01 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/13 "2016-02-21T18:01:58Z")

</div>

[quote=«&nbsp;MisterFreez&nbsp;»]`michel@local /tmp/tmp.dmap1ynoOe % mkdir -p a/b/c
michel@local /tmp/tmp.dmap1ynoOe % du -a
0	./a/b/c
0	./a/b
0	./a
0	.
michel@local /tmp/tmp.dmap1ynoOe % find -depth -type d -empty -delete
michel@local /tmp/tmp.dmap1ynoOe % du -a
0	.`  
🙂[/quote]  
Bon ben j’ai rien dit 😊  
En tous cas j’aurais appris quelque chose aujourd’hui ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 6:03 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/14 "2016-02-21T18:03:24Z")

</div>

Une ébauche de script “rmedir” :  
(POSIX et GNU)

[code]#!/bin/bash  
##########################

# 

# ScriptName : rmedir (remove empty dirs)

# 

##########################

# var

##########################  
scriptBaseName=$(basename $0)  
##########################

# help msg

##########################  
if [[$LANG = fr\*]]; then # if french LANG locale.

msg="\n “$scriptBaseName”   
permet de supprimer récursivement les répertoires vides contenus dans le répertoire de départ.\n   
\n   
Syntaxe : $scriptBaseName OPTION [chemin du répertoire de départ]\n   
\n   
Note: Si aucun répertoire de départ n’est donné, le répertoire courant ("$PWD") sera utilisé.\n   
\n   
Options: \n   
-h ou --help\t\t - Affiche ce fichier d’aide.\n   
-v ou --verbose\t - Mode verbeux.\n   
-i ou --interactive\t - Demande de confirmation pour chaque suppression de répertoire vide.\n"

else # all other languages =\> en.

msg="\n “$scriptBaseName”   
recursively removes empty folders from the start path.\n   
\n   
Syntax : $scriptBaseName OPTION [START PATH]\n   
\n   
Note: If no start path is given, the current path ("$PWD") will be used.\n   
\n   
Options:\n   
-h or --help\t\t - Displays this help file.\n   
-v or --verbose\t - Verbose mode.\n   
-i or --interactive\t - Ask for confirmation for each empty folder deletion.\n"  
fi  
##########################  
if [$# = 0]; then # No args. ?  
echo -e $msg # Display help message when no args.  
else  
while [“$1”]  
do  
case $1 in  
-h | --help)  
echo -e $msg # Display help message.  
exit  
;;  
-v | --verbose)  
cmd\_supress="-exec rmdir -v" # Verbose mode.  
shift  
;;  
-i | --interactive)  
cmd\_supress="-ok rmdir" # Ask for confirm before deletion.  
shift  
;;  
esac  
shift # Next arg. =\> Start Path.  
done  
if [“$cmd\_supress”]; then  
find $1 -depth -type d -empty $cmd\_supress {} ;  
else  
find $1 -depth -type d -empty -delete  
fi  
fi  
##################################

# END

##################################  
[/code]  
Merci à tous ceux qui voudront laisser leur commentaires.

---

<div class="post-metadata">

**Author:** ![hasable](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/c5a1d2/32.png) [@hasable](https://www.debian-fr.org/u/hasable)\
**Post date:** [Février 21, 2016, 6:05 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/15 "2016-02-21T18:05:40Z")

</div>

Bonjour,

Commentaire n1: faut dormir la nuit! 😆

Sinon les options courtes se gerent avec getopts:

```auto
while getopts hvi opt
do
    case $opt in
    h)
        // traitement si h
        ;;
    v)
        // traitement si v
        ;;
    i)
        // traitement si v
        ;;
    ?)
        // traitement si pas d'option
        ;;
    esac
done
```

A noter cependant:  
[ul]ne gere pas les options les longues (mais il y’a surement qlqch dans bash pour le faire[/ul]  
[ul]pour gerer les options qui non compatible entre elle il faut faire un bout de code specifique, typiquement: "si option “a” je mets le flag “a”, si option b alors que j’ai le flag “a” =\>erreur [/ul]

Getopts permet de gerer les parametres des options(il suffit de rajouter “:” devant la lettre)

```auto
while getopts :oh opt
do
    case $opt in
        o)
            // un parametre
            output="$OPTARG";
            ;;
        h)
            //
            ;;
    esac
done
```

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 6:05 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/16 "2016-02-21T18:05:41Z")

</div>

Merci beaucoup pour ces conseils.  
Je vais donc commencer par me documenter à fond sur les options de [getopts](http://wiki.bash-hackers.org/howto/getopts_tutorial) du Bash.  
C’est tout-à fait le genre de conseils et de commentaires que je recherche.  
N’hésitez surtout pas, et n’ayez pas peur de me vexer, je suis tellement débutant que je suis prêt à tout entendre.

@ tous :  
Ne vous inquiétez pas au sujet de la pertinence (très discutable) de ce script: c’est juste un prétexte pour apprendre à faire un script “propre”.

Encore un GRAND MERCI.

EDIT:  
style POSIX =\> options introduites par un seul tiret ("-")  
style [GNU](http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html) =\> options introduites avec double tiret ("–")

C’est un peu pour ça que j’avais abandonné l’idée d’utiliser “getops”, mais (comme vous me le faites remarquer) ce n’est pas la bonne méthode.  
Je vais donc plutôt utiliser “getops”.

?? Je ne sais pas pourquoi je n’arrive pas à utiliser la variable “OPTARG”, elle est toujours vide. ??

==============  
J’ai aussi le projet de créer un fichier “.po” pour la traduction du message d’aide, comme l’a si bien fait “getops” pour ses messages d’erreur.  
Je ne l’ai jamais fait, aussi, il me faudra trouver des renseignements “frais” à ce sujet.  
J’avais déjà suivit l’excellent travail fait avec “gettext” pour les traductions, mais ça fait trop longtemps, aussi, je vais devoir faire une mise à jour de ce que je savais à ce sujet.

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 21, 2016, 6:05 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/17 "2016-02-21T18:05:58Z")

</div>

> [@hasable](#):
>
> Getopts permet de gerer les parametres des options(il suffit de rajouter «&nbsp;:&nbsp;» devant la lettre)

> [@MicP](#):
>
> ?? Je ne sais pas pourquoi je n’arrive pas à utiliser la variable «&nbsp;OPTARG&nbsp;», elle est toujours vide. ??

C’est pas derrière plutôt ?  
[wiki.bash-hackers.org/howto/getopts\_tutorial](http://wiki.bash-hackers.org/howto/getopts_tutorial)

---

<div class="post-metadata">

**Author:** ![hasable](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/c5a1d2/32.png) [@hasable](https://www.debian-fr.org/u/hasable)\
**Post date:** [Février 21, 2016, 6:05 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/18 "2016-02-21T18:05:58Z")

</div>

Si, c’est derriere. (ma faute, ma tres grande faute, mais je suis pas un expert non plus! 😊 )

De plus le cas “?” est en fait utilise quand on utilise une option avec parametre sans mettre le parametre:

```auto
#/bin/bash
while getopts p: name
do
        case $name in
        p)
                echo "Param: ${OPTARG}"
                ;;
        ?)
                echo "aucun param..."
                ;;
        esac
done
```

donne a l’execution:

```auto
$ ./test.sh -p toto
Param: toto
$ ./test.sh -p
./test.sh: option requires an argument -- p
aucun param...
```

Enfin si getopts gere les options courtes, getopt gere les options longues (mais la je n’ai jamais utilise, donc je ne connais pas…

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 21, 2016, 6:05 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/19 "2016-02-21T18:05:59Z")

</div>

il me semble que getopts est compatible avec tous les shell alors que getopt non …

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2016, 6:06 UTC](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836/20 "2016-02-21T18:06:00Z")

</div>

[quote=«&nbsp;GNU libc Using Getopt&nbsp;»]… The options argument is a string that specifies the option characters that are valid for this program.  
An option character in this string can be followed by a colon (‘:’) to indicate that it takes a required argument.  
If an option character is followed by two colons (‘::’), its argument is optional; this is a GNU extension. …[/quote]

> [@GNU libc Getopt Long Options](#):
>
> … To accept GNU-style long options as well as single-character options, use getopt\_long instead of getopt …

==============  
[Getopts](http://en.wikipedia.org/wiki/Getopts) =\> POSIX  
[Getopt](http://www.gnu.org/software/libc/manual/html_node/Getopt.html#Getopt) =\> GNU  
[Getopt Long Options](http://www.gnu.org/software/libc/manual/html_node/Getopt-Long-Options.html#Getopt-Long-Options) =\> GNU

==============  
[Small getopts tutorial](http://wiki.bash-hackers.org/howto/getopts_tutorial) → Using it → A first example  
«&nbsp;:a&nbsp;» =\> «&nbsp;… disable the verbose error handling by preceeding the whole option string with a colon (🙂 …&nbsp;»

==============  
Je pense qu’il me faudra m’inspirer de cet «&nbsp;[Example of Getopt](http://www.gnu.org/software/libc/manual/html_node/Example-of-Getopt.html#Example-of-Getopt)&nbsp;», et peut-être même de «&nbsp;[Getopt Long Options](http://www.gnu.org/software/libc/manual/html_node/Getopt-Long-Options.html#Getopt-Long-Options)&nbsp;».

[Page suivante](https://www.debian-fr.org/t/demande-conseils-pour-script-effacement-recursif-de-dossiers/58836.md?page=2)
