Вопрос Что такое каталог с двойной косой чертой (//)?


Я ошибочно набрал cd // вместо cd /, К моему удивлению, текущий каталог появился как //,

Что это за каталог? Почему он существует?

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

24
2018-01-29 01:57


происхождения




ответы:


// обычно совпадает с /, /// должен быть таким же, как /,

ls показал бы вам, что cd // отвез вас в корневую директорию, то же самое, что и cd / делает.

$ cd /
$ ls
bin
boot
dev
...
$ cd //
$ ls
(same as above)

Технический способ подтвердить, что они, безусловно, один и тот же каталог:

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

они будут печатать тот же номер индексного дескриптора, что означает, что это одно и то же.

Детали gory задокументированы в Спецификация имени пути POSIX:

Путь, состоящий из одной косой черты, должен разрешаться в корневой каталог процесса. Нулевой путь не будет успешно разрешен. Путь, начинающийся с двух последовательных косых черт, может быть интерпретирован в соответствии с реализацией, хотя более двух ведущих косых черт следует рассматривать как одну косую черту.


37
2018-01-29 02:03