GNU/Linux >> Tutoriels Linux >  >> Linux

Comment entrer dans un répertoire dont le nom n'est qu'un moins ?

J'ai téléchargé lessn sur mon serveur Web et je l'ai décompressé.

Il contient un dossier nommé - . Je supposais que je savais comment gérer cela, mais ce n'est pas le cas.

J'ai essayé cd -- - , mais cela n'a pas l'effet escompté. L'utilisation de guillemets ne semble pas l'affecter non plus. J'ai mis des barres obliques partout, en vain.

Quelle est la bonne façon de changer dans ce dossier ?

Réponse acceptée :

Vous voulez éviter qu'il ne soit un paramètre, nous essayons donc d'y ajouter quelque chose. Le répertoire courant est accessible avec . , donc le sous-dossier - accessible alternativement avec ./- .

cd ./-

La raison pour laquelle cd -- - ne fonctionne pas parce que cela est implémenté différemment si vous comparez rm (voir man rm ) en cd (voir man bash ou man cd ), cd a une interprétation différente qui voit - en paramètre (voir man bash ou man cd ).

Il convient également de noter que cd est une fonction intégrée du shell, comme on peut le lire dans cette réponse :

cd n'est pas une commande externe - c'est une fonction intégrée du shell. Il s'exécute dans le contexte du shell actuel et non, comme le font les commandes externes, dans un contexte fork/exec en tant que processus séparé.

Cela explique pourquoi l'implémentation est différente, car Bash et Coreutils sont deux choses différentes.

Supposons simplement que vous ne le croiriez pas, comment le confirmons-nous ? Utilisez which et type .

 $ which cd && type cd
which: no cd in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.2:/usr/games/bin
cd is a shell builtin
 $ which rm && type rm
/bin/rm
/bin/rm is /bin/rm


Linux
  1. Comment installer R 3.3.1 dans le propre répertoire ?

  2. Comment compresser un répertoire sous Linux

  3. Comment obtenir uniquement le nom de fichier avec Linux 'find'?

  4. Comment créer un lien vers un répertoire

  5. Comment obtenir uniquement l'ID de processus en spécifiant le nom du processus sous Linux?

Comment installer Jenkins sur Kubernetes

Comment supprimer un répertoire sous Linux

Comment renommer un répertoire sous Linux

Comment copier un répertoire sous Linux

Comment s'assurer qu'une seule instance d'un script Bash s'exécute ?

Comment installer Metasploit sur Ubuntu