Re: effacer un fichier du genre "-X"

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: guilde
Subject: Re: effacer un fichier du genre "-X"
Le vendredi 28 janvier, à 08h47 (+0100), Patrick Begou a écrit :
> Fabien Blanc-Paques wrote:
> >
> > comment puis-je effacer un fichier qui s'apelle -C ?
> > J'ai essaye le #rm \-C sans succes...


Le caractère `\' est un caractère spécial du shell. Il est interprété
par le shell comme une demande d'interprétation littérale du caractère
suivant.

Le caractère `-' n'a rien de spécial pour le shell. Il est transmis tel
quel au programme rm. Le `\' n'a donc aucun effet sur lui. Et puisque
c'est rm qui interprète le `-', c'est à lui qu'il faut dire de ne pas
l'interpréter.

> Tu peux utiliser:
> find . -name \*C -print -exec rm -i "{}" \;
> qui te demandera confirmation pour supprimer les fichiers *C.


Oui, mais un peu long à taper.

> Sinon, cree un fichier toto (touch toto) et execute
> rm toto -C
> car les options doivent toujours preceder le nom du premier fichier


Pas pour les programmes utilisant GNU getopt, à moins d'avoir mis
POSIXLY_CORRECT dans l'environnement :
    [edgar@bonet ~]% rm toto -c
    rm: option invalide -- c.
    Pour en savoir davantage, faites: `rm --help'.
Cf. man 3 getopt.


Mais Fred a donné les solutions :
- sous Unix : rm ./-c
- sous GNU : rm -- -c
Je préfère la première qui est plus portable.

-- 
Edgar Bonet                         Tel :    +1 607 255-9349
LASSP -- Cornell University         Fax :    +1 607 255-6428
Clark Hall                          e-mail : edgar@???
Ithaca, NY 14853, USA               http://bonet.polycnrs-gre.fr/~edgar/