Почему `//` отображается только для каталогов первого уровня? [дубликат]

На этот вопрос уже есть ответ здесь:

Для корневого каталог a // отобразится в приглашении:

───────────────────────────────────────────────────────────────────────────────
rick@alien:~$ cd /
───────────────────────────────────────────────────────────────────────────────
rick@alien:/$ cd //
───────────────────────────────────────────────────────────────────────────────
rick@alien://$ cd ///
───────────────────────────────────────────────────────────────────────────────
rick@alien:/$ 

Вы можете перейти в каталог // . Но когда вы переходите в каталог /// , он возвращает вас обратно в / .

Подкаталоги отображаются иначе:

───────────────────────────────────────────────────────────────────────────────
rick@alien:~$ cd /usr
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr$ cd /usr//src
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr/src$ 
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr/src$ cd //usr
───────────────────────────────────────────────────────────────────────────────
rick@alien://usr$ 
───────────────────────────────────────────────────────────────────────────────
rick@alien://usr$ cd ///usr
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr$ 

Как видите, // автоматически преобразуется в один / в подкаталогах. Однако правило не распространяется на каталоги первого уровня.

Почему // отображается для каталогов верхнего уровня, но не для подкаталогов?

-2
задан 20 April 2018 в 06:04

1 ответ

Вторая наклонная черта не имеет никакого значения, и надлежащее поведение состоит в том, чтобы система рассматривала его, как будто это была единственная наклонная черта.

Ваша оболочка нормализует путь так, чтобы это показали без дополнительной наклонной черты во всех случаях за исключением одного: когда путь начинается всего с двух наклонных черт. Оболочка сохраняет вторую наклонную черту в этом случае согласно стандартам POSIX, которые позволяют путям, начинающимся с двух наклонных черт определять особое значение контекстом. В этом контексте, однако, нет никакого особого значения, и он заканчивает тем, что был проигнорирован даже при том, что оболочка сохраняет его.

3
ответ дан 31 October 2019 в 00:35

Другие вопросы по тегам:

Похожие вопросы: