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/