Почему я могу получить доступ к директории // в Linux?

3

Я нашел этот каталог в моем сервере Ubuntu

momo@myubuntuserver:/$ cd /
momo@myubuntuserver:/$ pwd
/
momo@myubuntuserver:/$ cd //
momo@myubuntuserver://$ pwd
//
momo@myubuntuserver://$ cd ///
momo@myubuntuserver:/$ pwd
/

почему этот каталог существует? Как это работает ?


источник

Ответы:

9

Из Bash FAQ :

E10) Why does `cd //' leave $PWD as `//'?

POSIX.2, in its description of `cd', says that *three* or more leading
slashes may be replaced with a single slash when canonicalizing the
current working directory.

This is, I presume, for historical compatibility.  Certain versions of
Unix, and early network file systems, used paths of the form
//hostname/path to access `path' on server `hostname'.
devnull
источник
5

//только /на линуксе. Как есть ///, так и ///bin//////lsесть альтернативное название /bin/ls.

Наберите, /bin/pwdчтобы узнать настоящий настоящий рабочий каталог.

Фред Фу
источник
Интересный вопрос: почему командная оболочка и pwd не нормализуются, //как они нормализуются ///?
@DanielFischer: потому что в соответствии со стандартом POSIX, //начало пути может иметь особое значение для ОС, и Bash, похоже, это учитывает. Linux не придает такого значения. (Я думаю, что Cygwin и другие пакеты «Unix-для-Windows» используют это для обозначения сетевых путей UNC, но соглашение восходит к Apollo Domain / OS.)
Фред Фу,