Qu'est-ce que le répertoire «//»?


12

Sur diverses machines Linux, vous pouvez

cd /

et

cd //

Le shell dira que le répertoire courant est '/' ou '//' après avoir utilisé la commande correspondante.

La question est donc la suivante: quelle est la différence entre '/' et '//', et si la réponse est 'aucune différence', alors pourquoi '//' est-il affiché différemment de '/'

BTW

cd ///
cd ////
cd /////

Tous les résultats dans le shell indiquant que le répertoire actuel est «/»

Voici un exemple de session:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
Cela semble être une anomalie spécifique à bash. Si vous essayez cd //dans csh ou zsh et que pwdcela montrera juste '/'
Doug Harris

intéressant - qui éclaire
sylvanaar

1
A titre de comparaison: cd //usr/bindonne "// usr / bin", mais cd /usr//bindonne "/ usr / bin" (en Bash).
pause jusqu'à nouvel ordre.

Réponses:


14

Demandons à l'homme lui-même (Chester Ramey):

E10) Pourquoi 'cd //' laisse-t-il $ PWD '//'?

POSIX.2, dans sa description de «cd», indique que trois barres obliques ou plus peuvent être remplacées par une seule barre oblique lors de la canonisation du répertoire de travail actuel.

C'est, je présume, pour la compatibilité historique. Certaines versions d'Unix, et les premiers systèmes de fichiers réseau, utilisaient des chemins d'accès de la forme // hostname / path pour accéder à 'path' sur le serveur 'hostname'.


Réponse bien meilleure que celle (déjà assez bonne) de John T.
innaM

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.