Я по ошибке набрал 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
/
//
обычно совпадает с /
. ///
должно совпадать с /
.
ls
показал бы, что cd //
перенесет вас в корневой каталог, так же, как cd /
.
$ cd /
$ ls
bin
boot
dev
...
$ cd //
$ ls
(same as above)
Технический способ подтвердить, что они определенно являются одним и тем же каталогом:
$ cd /
$ stat -c "%i" .
2
$ cd //
$ stat -c "%i" .
2
они напечатают один и тот же номер инода, что означает, что это одно и то же.
Подробные сведения описаны в спецификации разрешения имен путей POSIX :
Имя пути, состоящее из одной косой черты, должно разрешаться в корневой каталог процесса. Нулевой путь не может быть успешно разрешен. Имя пути, начинающееся с двух последовательных слешей, может интерпретироваться способом, определяемым реализацией, хотя более двух ведущих слешей должны обрабатываться как один слеш.
BLOCKQUOTE>