Que signifie double slash // dans `cd //` sous Linux? [dupliquer]

cette question a déjà une réponse ici:

  • qu'est-ce que le chemin //, comment est-il différent de / 1 réponse

j'ai entré une commande cd // au lieu de cd / par erreur et au lieu d'obtenir une erreur comme je m'y attendais le shell (Bash) a montré un prompt comme si j'étais dans l'annuaire // : -

<username>@<hostname>://$
<username>@<hostname>://$ pwd
//

la liste du contenu du répertoire montre qu'il est le même que / .

alors que fait exactement cd // et quelle est la différence avec cd / ?

30
demandé sur vitaut 2013-12-20 00:15:27

2 réponses

en fait, il ne signifie rien et est ignoré.

From the Bash FAQ E10: :

E10) pourquoi "cd / /" laisse $PWD comme"//"?

POSIX.2, dans sa description de "cd", dit que trois ou plus les barres obliques peuvent être remplacées par une seule barre oblique lors de la répertoire de travail courant.

c'est, je présume, pour la compatibilité historique. Certaines versions de Unix, et les premiers systèmes de fichiers réseau, utilisé chemins de la forme //hostname/chemin d'accès 'chemin' sur le serveur 'hostname'.

aussi le Unix standards stipule:

un nom de chemin qui commence par deux slashes successifs peut être interprété d'une manière définie par la mise en œuvre, bien que plus de deux des barres obliques doivent être traitées comme une seule barre oblique.

39
répondu Rahul Tripathi 2013-12-19 20:23:23

Ce réponse sur AskUbuntu confirme qu'ils sont le même répertoire. En outre, il cite utilement de la spécification de résolution de chemin de POSIX :

Un chemin constitué d'une seule barre oblique doit se résoudre dans le répertoire racine du processus. Un chemin nul ne doit pas être résolu avec succès. Un nom de chemin qui commence par deux slashes successifs peut être interprété dans une implémentation-défini de la même manière, bien que plus de deux entailles principales soient traitées comme une seule entaille.

15
répondu Serpentine Cougar 2017-04-13 12:22:45