Что такое каталог «//»?


12

На разных машинах Linux вы можете

cd /

и

cd //

Оболочка скажет, что текущим каталогом является «/» или «//» после использования соответствующей команды.

Таким образом, вопрос: в чем разница между «/» и «//», и если ответ «нет разницы», то почему «//» отображается иначе, чем «/»

КСТАТИ

cd ///
cd ////
cd /////

Все результаты в оболочке говорят, что текущий каталог '/'

Вот пример сеанса:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
Это похоже на аномалию, специфичную для bash. Если вы попробуете cd //в csh или zsh, и тогда pwdон покажет просто '/'
Даг Харрис

интересно - это проливает свет на это
sylvanaar

1
Для сравнения: cd //usr/binвыдает "// usr / bin", но cd /usr//binвыдает "/ usr / bin" (в Bash).
Приостановлено до дальнейшего уведомления.

Ответы:


14

Давайте спросим самого человека (Честер Рами):

E10) Почему «cd //» оставляет $ PWD как «//»?

POSIX.2 в своем описании 'cd' говорит, что три или более начальных слеша могут быть заменены одним слешем при канонизации текущего рабочего каталога.

Это, я полагаю, для исторической совместимости. Некоторые версии Unix и ранние сетевые файловые системы использовали пути в форме // имя хоста / путь для доступа к «пути» на сервере «имя хоста».


Гораздо лучший ответ, чем (уже довольно хороший) от Джона Т.
innaM

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.