editor
621
modifications
Ligne 209 : | Ligne 209 : | ||
=== Noms commençant par - === | === Noms commençant par - === | ||
Les fichiers commençants par le caractère "-" (moins) peuvent être gênant à gérer en ligne de commande, car ils sont reconnus comme des options du programme. La solution pour les utiliser consiste à ajouter <code>--</code> entre les options du programme et les fichiers que vous souhaitez passer en paramètre.<br/> | Les fichiers commençants par le caractère "-" (moins) peuvent être gênant à gérer en ligne de commande, car ils sont reconnus comme des options du programme. La solution pour les utiliser consiste à ajouter <code>--</code> entre les options du programme et les fichiers que vous souhaitez passer en paramètre.<br/> | ||
Si vous vouliez supprimer sans demande de confirmation (option "-f") le fichier "-aeffacer" situé dans votre dossier personnel, vous seriez tenté de formuler votre ligne de commande comme cela : | |||
votrelogin@votremachine:~$ rm -f -aeffacer | |||
rm -aeffacer | rm : option non valide -- a | ||
Saisissez « rm --help » pour plus d'informations. | |||
On constate ici que le shell a bien interprété la chaîne de caractère "-f" comme une option de la commande "rm", mais étant donné que le premier caractère de la chaîne suivante est le caractère "-", il a cherché s'il existait une option de la commande "rm" qui correspondrait à la première lettre suivant le "-" de "-aeffacer" : la lettre "a".<br/> | |||
N'ayant pas trouvé d'option "-a" dans la liste des options possibles de la commande "rm", il renvoie un message d'erreur nous informant que cette option est "non valide".<br/> | |||
====Séparer les options des paramètres avec "--"==== | |||
rm -aeffacer | Afin d'éviter ce type de confusion à l'interpréteur de commandes, il est possible de lui indiquer par deux caractères moins "--" l'endroit où finissent les options, et donc commencent les paramètres.<br/> | ||
On peut donc utiliser ce nom de fichier comme paramètre en insérerant les deux caractères moins "--" dès que la liste des options est terminée, le shell comprendra que ce qui suit ne peut pas être une option.<br/><br/> | |||
Pour supprimer le fichier "-aeffacer" sans demander de confirmation (option "-f"), il faudrait alors entrer la commande: | |||
monlogin@mamachine:~$ rm -f -- -aeffacer | |||
====Autre solution : Cacher le caractère "-" en début paramètre.==== | |||
Dans | Cette deuxième solution consiste à faire en sorte que le premier caractère de la chaîne ne soit plus un "-", afin que le shell ne l'interprète pas comme une option de programme.<br/> | ||
rm | Pour ce faire, on peut faire précéder ce nom de fichier par son chemin relatif ou absolu.<br/><br/> | ||
Si la commande est exécuté depuis le dossier dans lequel se trouve le fichier, le chemin courant peut être représenté par un caractère point ".".<br/> | |||
rm /home/monlogin/-aeffacer | Dans ce cas, la chaîne de caractère correspondant à ce nom de fichier avec son chemin relatif sera donc "./-aeffacer" | ||
Le premier caractère de cette chaîne n'étant plus le caractère "-", le shell ne pourra donc pas être induit en erreur et la prendre pour une chaîne d'options.<br/> | |||
Dans ce cas la ligne de commande pourrait être :<br/> | |||
monlogin@mamachine:~$ rm ./-aeffacer | |||
Ou bien, avec le chemin absolu: | |||
monlogin@mamachine:~$ rm /home/monlogin/-aeffacer | |||
=== Accolades === | === Accolades === |