Подтвердить что ты не робот

Что означает двойной слэш//в `cd//` в Linux?

Я ввел команду cd // вместо cd / по ошибке и вместо того, чтобы получить ошибку, так как я ожидал, что оболочка (Bash) покажет приглашение, как если бы я был в // каталог: -

<username>@<hostname>://$
<username>@<hostname>://$ pwd
//

Список содержимого каталога показывает, что он совпадает с /.

Итак, что именно делает cd // и чем отличается от cd /?

4b9b3361

Ответ 1

На самом деле это ничего не значит и игнорируется.

Из Bash FAQ E10::

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

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

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

Кроме того, стандарты Unix гласят:

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

Ответ 2

Этот ответ на AskUbuntu подтверждает, что они являются одним и тем же каталогом. Кроме того, он помогает использовать Спецификацию разрешения имен POSIX:

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