Sur ma box Linux, en bash, j'ai accès à un dossier "double root" indiqué par deux barres obliques:
tomas:~ $ cd /
tomas:/ $ ls
bin/ cdrom@ ...
tomas:/ $ cd //
tomas:// $ ls
bin/ cdrom@ ...
Le contenu du dossier et de son sous-dossier est identique à la racine simple barre oblique "normale". La double barre oblique ne disparaît pas lorsque j'accède à ses sous-dossiers. L'anomalie ne se répète pas avec trois barres obliques ou plus; ce sont des synonymes simples pour la racine:
tomas:// $ cd home/tomas
tomas://home/tomas $ cd ///
tomas:/ $ cd ////
tomas:/ $
C'est quel genre d'endroit? Est-ce un bug? Quelqu'un peut-il expliquer cette anomalie?
Réponses:
De la FAQ Bash E10 :
la source
"Ce n'est pas un bug, c'est une fonctionnalité!"
Vous êtes toujours dans le même répertoire racine. Je ne connais pas l'origine de cela, mais je soupçonne que cela peut avoir quelque chose à voir avec la construction de chaînes pour des chemins absolus. Si quelqu'un d'autre le sait, lancez-vous.
la source
Les barres obliques multiples sont simplement ignorées par les outils que vous avez utilisés et vous obtenez toujours le même dossier racine.
la source
Plusieurs barres obliques sont traitées comme une seule barre oblique à des fins de résolution de chemin.
Ce que vous voyez dans l'invite du shell est un artefact de la gestion de bash PS1 (voir la section "PROMPTION" dans la page de manuel de bash).
Le résultat n'est qu'une question de présentation; vous êtes toujours dans le même répertoire racine. Vous pouvez vérifier cela en regardant
/proc/$$/root
.[modifier] Eh bien, je ne l'ai jamais su: http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11 La signification de "//" n'est pas définie par les normes, mais "///" et plusieurs barres obliques équivalent à "/".
la source