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


3

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

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

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

linux  bash  ubuntu 

Ответы:


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'.

5

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

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


Интересный вопрос: почему командная оболочка и pwd не нормализуются, //как они нормализуются ///?

@DanielFischer: потому что в соответствии со стандартом POSIX, //начало пути может иметь особое значение для ОС, и Bash, похоже, это учитывает. Linux не придает такого значения. (Я думаю, что Cygwin и другие пакеты «Unix-для-Windows» используют это для обозначения сетевых путей UNC, но соглашение восходит к Apollo Domain / OS.)
Фред Фу,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.