Je travaillais dans mon terminal, quand j'ai mal orthographié pendant que cd
à la racine (/
). Par accident, j'ai tapé //
et je suis entré dans le terminal :
[email protected]://#
Quand je tape pwd
, je reçois la réponse //
mais quand je tape ls -s
j'ai la même liste que dans /
répertoire.
Lorsque vous tapez plus de 2, c'est-à-dire ///
vous obtenez :
[email protected]:/#
Toujours 1 /
sauf pour 2. Y a-t-il une différence et qu'est-ce que //
pour ?
Meilleure réponse
/
est équivalent à //
À partir de la spécification POSIX (soulignement ajouté) :
3.267 Chemin d'accès
Chaîne utilisée pour identifier un fichier. Dans le contexte de
POSIX.1-2008, un nom de chemin peut être limité à {PATH_MAX} octets, y compris
l'octet nul de fin. Il a un début facultatif<slash>
caractères, suivis de zéro ou plusieurs noms de fichiers séparés par<slash>
personnages. Un nom de chemin peut éventuellement contenir un ou plusieurs<slash>
à la fin personnages. Plusieurs<slash>
successifs les caractères sont
considérés comme identiques à un<slash>
, sauf dans le cas de
exactement deux<slash>
caractères.
Et :
4.12 Résolution des noms de chemin
…
Un nom de chemin composé d'un seul<slash>
doit être résolu dans le répertoire racine
du processus. Un nom de chemin nul ne doit pas être
résolu avec succès. Si un nom de chemin commence par deux<slash>
successifs caractères,
le premier composant après le<slash>
de début les caractères peuvent être
interprétés d'une manière définie par l'implémentation, bien que plus de
deux<slash>
de tête les caractères doivent être traités comme un seul<slash>
caractère.
Pour une discussion intéressante sur les exceptions (cygwin et répertoires), consultez :Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?