Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
suppression fichier impossible (fichier avec -)
Envoyé par: Père Noël

Bonjour,

gros nigo que je suis :-( je me suis loupé sur un tar et au lieu d'écrire

tar -option destination fichier1 ...

j'ai écrit

tar -option -L ...

donc mon gentil Linux m'a créer un fichier tar de 4,6 Go qui se nomme -L.
Or il est impossible de supprimer ce fichier en effet si je tape :

rm -L, il me dit que l'option -L n'existe pas.
idem pour mv -L.

Par contre le fichier -L lui existe. angry smiley)
Comment puis-je le supprimer ou le rennomer?

Par avance merci,

Père Noël



Poste le Wednesday 5 October 2005 18:32:40
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -) résolu
Envoyé par: Père Noël

Résolu,

en le désignant avec son chemin ./-L, Linux comprend que je désigne un fichier et non une option.

Désolé pour le dérangement,

Père Noël

Poste le Wednesday 5 October 2005 18:39:33
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)

Tu peux aussi faire :


rm -- -L

--
Brugmans Frédéric

[www.brugmans.net]
[triathlon.sport-challenge.be]

Poste le Wednesday 5 October 2005 21:07:20
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: tg(y)

rm "-L"
peut-être ?

Poste le Wednesday 5 October 2005 22:17:09
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: lolotux

Non j'ai essayé cela ne fonctionne pas !

Mais
mv -- NOM NOM2
rm NOM2

Fonctionne !
A retenir

Poste le Thursday 6 October 2005 10:19:50
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: nicola

Normalement c’est indiqué dans la page de manuel de rm, mais tu peux aussi utiliser mc.

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Thursday 6 October 2005 11:28:20
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: oudoubah

ou rm \-L
La première solution de Nicola est aussi une très bonne solution ;-)

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Thursday 6 October 2005 14:05:08
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: nicola

Quoi, ça veut dire que la deuxième pue ? :-))

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Thursday 6 October 2005 19:58:38
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: Oliwood

Bonsoir à tous,


Le rm \-L ne fonctionnera pas, car le \ sert à échapper un caractère que le shell peut interpréter. Or le - n'est pas un caractère interprétable du shell.

Le rm "-L" ne fonctionnera pas, et pour les mêmes raisons.

Par contre, on peut en effet utiliser la notation ./-L qui, comme l'a dit le Père Noël, fait "comprendre au shell que l'on désigne un fichier", ce qui en soit n'est pas tout à fait vrai (je m'explique juste après).

La raison à tout cela est que le 'rm', comme une majorité d'autres programmes GNU, utilisent la fonction getopt pour "parser" (parcourir) leurs paramètres. Or, la fonction getopt permet de reconnaître n'importe quel argument commençant par un '-' passé à la commande, comme étant un paramètre de la commande (la nuance entre argument et paramètre prend ici tout son sens).

Donc la plupart des commandes GNU auront des difficultés pour manipuler des fichiers (ou tout autre type d'argument) dont le nom commence par un tiret, tout simplement car le getopt les interprétera comme des options de la commande.

Pour en revenir au ./-L, cela ne dit pas vraiment au shell d'interpréter le -L comme un fichier. Cela fait tout simplement que le getopt ne reconnaît pas cet argument comme un paramètre (car le tiret n'est pas en première position).
Dans \-L, le tiret, même s'il est échappé, est bien le premier caractère de l'argument. Donc, pour getopt \-L est identique à -L, et c'est un paramètre qu'il renvoie à la commande.
Idem pour "-L" ou les guillemets indiquent seulement au shell de ne pas interpréter les caractères spéciaux contenus dans l'argument. Le getopt, pour sa part, voit un argument -L.

Pour terminer cette (brillante ?) démonstration, il faut savoir que la fonction getopt interprète un paramètre particulier dans toute ligne de commande. Il s'agit du paramètre --, cité par Frédéric. Ce paramètre n'est interprété que par le getopt lui-même, et n'est pas transmis à la commande qui appelle getopt.
Ce paramètre signifie pour getopt qu'il n'attend plus aucun paramètre sur la ligne de commande, donc tous les arguments suivants qui commencent par un tiret sont tout simplement considérés comme des arguments simples.

Désolé de vous avoir ennuyé pour certains, qui n'auront peut-être pas eu le courage de lire jusqu'ici.
Pour les autres, je ne cherche pas à étaler ma science. Je suis tout juste content de pouvoir partager ce que j'ai pu apprendre à ce sujet. J'ai en effet connu le même problème il y a quelques jours. Et j'ai pu apprendre tout ça en fouillant un peu (le man entre autres).

Bonne soirée
@+

Oliwood

Poste le Wednesday 12 October 2005 23:36:31
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: nicola

Et si ton fichier s’appelle ./-L, ça marche aussi ? :-))

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Thursday 13 October 2005 06:53:47
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: merlin8282

Ben ... ça devrait, avec rm ././-L , normalement (pas testé) ];-)

.:! L'être humain est au sommet de la chaîne alimentaire. Certes. Mais il est surtout au sommet de la connerie et de la bêtise... !:.
-- Pour les nouveaux linuxiens : Ce n'est pas en continuant de faire ce que l'on connaît que l'on pourra faire ce que l'on ne connaît pas --

Poste le Thursday 13 October 2005 07:06:20
Répondre     Citer    
Re: suppression fichier impossible (fichier avec -)
Envoyé par: Oliwood

Citation
nicola
Et si ton fichier s’appelle ./-L, ça marche aussi ?
A priori je dirais qu'il est impossible d'avoir un fichier comportant un slash...#%b

Poste le Friday 14 October 2005 18:37:04
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
suppression fichier impossible (fichier avec -)
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons