web-dev-qa-db-fra.com

Comment cd dans un répertoire avec ce nom "-2" (en commençant par le tiret)?

J'ai un répertoire nommé:

-2

Je veux y entrer mais le cd se plaint:

bash: cd: -2: invalid option

Sans succès, j'ai essayé:

cd "-2"
cd '-2'
cd \-2

Toute solution?

Edit: aucun navigateur de fichiers comme mc, etc. n'est disponible sur le serveur.

175
user151851

Au moins deux façons:

  1. Utilisez l'argument --.

    cd -- -2
    

    Ceci utilise une convention commune aux outils GNU qui consiste à ne pas traiter tout ce qui apparaît après -- Comme une option de ligne de commande.

    Comme l'a noté commentateur , cette convention est également définie dans la norme POSIX :

    Comportement par défaut: Lorsque cette section est répertoriée comme "Aucune", cela signifie que l'implémentation n'a besoin de prendre en charge aucune option. Les utilitaires standard qui n'acceptent pas les options, mais qui acceptent les opérandes, doivent reconnaître "--" Comme premier argument à ignorer.

    La nécessité de reconnaître "--" Est due au fait que les applications conformes ont besoin d'un moyen de protéger leurs opérandes de toutes les options arbitraires que l'implémentation peut fournir en tant qu'extension. Par exemple, si l'utilitaire standard foo est répertorié comme ne prenant aucune option et que l'application devait lui donner un chemin d'accès avec un trait d'union, il pourrait le faire en toute sécurité comme suit:

    foo -- -myfile
    

    et éviter tout problème avec - m utilisé comme extension.

    ainsi que :

    Ligne directrice 10:
    L'argument -- Doit être accepté comme délimiteur indiquant la fin des options. Tous les arguments suivants doivent être traités comme des opérandes, même s'ils commencent par le caractère '-'. L'argument -- Ne doit pas être utilisé comme option ou comme opérande.

  2. Spécifiez le chemin explicitement:

    cd ./-2
    

    Ceci spécifie le chemin nommant explicitement le répertoire courant (.) Comme point de départ.

    cd $(pwd)/-2
    cd /absolute/path/to/-2
    

    Ce sont des variations de ce qui précède. Un certain nombre de ces variations peuvent être possibles; Je laisse au lecteur le soin de les découvrir tous.

281
Michael Hampton

Cela devrait fonctionner:

cd -- -2 

- signifie plus d'option

49
Tim Haegele

Cela fonctionnera si "-2" est dans le répertoire courant.

    cd ./-2

Vous pouvez compléter la saisie semi-automatique en tapant - et en appuyant sur tab.

26
newbee

cd /home/...../-2 fonctionne également. Donnez le chemin d'accès complet.

11
Vivek

Juste pour compléter, si vous souhaitez supprimer/supprimer ce répertoire, vous pouvez utiliser la commande suivante:

rm -r -- -2
7
Zignd