32 votes

Qu'est-ce que le répertoire double slash (//) ?

J'ai tapé par erreur cd // au lieu de cd /. À ma surprise, le répertoire actuel est apparu en tant que //.

Quel est ce répertoire ? Pourquoi existe-t-il ?

apple@snipped $ pwd
/home/apple
apple@snipped $ cd /
apple@snipped $ pwd
/
apple@snipped $ cd //
apple@snipped $ pwd
//
apple@snipped $ cd ///
apple@snipped $ pwd
/

46voto

mercutio Points 5828

// est généralement le même que /. /// doit être le même que /.

ls vous aurait montré que cd // vous a conduit au répertoire racine, tout comme cd / le fait.

$ cd /
$ ls
bin
boot
dev
...
$ cd //
$ ls
(identique à ci-dessus)

La méthode technique pour confirmer qu'il s'agit définitivement du même répertoire est la suivante :

$ cd /
$ stat -c "%i" .
2
$ cd //
$ stat -c "%i" .
2

ils afficheront le même numéro d'inode, ce qui signifie qu'ils sont la même chose.

Les détails sont documentés dans la spécification Résolution du chemin POSIX :

Un chemin d'accès constitué d'un seul slash se résoudra dans le répertoire racine du processus. Un chemin d'accès nul ne sera pas résolu avec succès. Un chemin d'accès commençant par deux barres obliques successives peut être interprété de manière spécifique à une implémentation, bien que plus de deux barres obliques en tête soient traitées comme un seul slash.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X