Что означает // в пути?

Что означает // в пути?

Я работал в терминале, когда неправильно написал while cdдля root ( /). Случайно я набрал //и попал в терминал:

root@weblocalhost://#

Когда я печатаю pwd, я получаю ответ //, но когда я печатаю, ls -sя получаю тот же список, что и в /справочнике.

При вводе более 2, т.е. ///вы получите:

root@weblocalhost:/#

Всегда 1, /за исключением 2. Есть ли разница и //для чего она?

решение1

/эквивалентно//

Отспецификация POSIX(выделено мной):

3.267 Имя пути

Строка, используемая для идентификации файла. В контексте POSIX.1-2008 имя пути может быть ограничено {PATH_MAX} байтами, включая завершающий нулевой байт. Оно имеет необязательные начальные <slash> символы, за которыми следует ноль или более имен файлов, разделенных <slash> символами. Имя пути может необязательно содержать один или более конечных <slash>символов.Несколько последовательных <slash>символов считаются одинаковыми, как один <slash>, за исключением случая, когда начальных <slash>символов ровно два.

И:

4.12 Разрешение имени пути

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

Подробное обсуждение исключений (cygwin и каталоги) см. здесь:Как Linux обрабатывает несколько последовательных разделителей пути (/home////username///file)?

решение2

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

cd /home
cd /home/
cd /home//

После любого из этих действий мой текущий рабочий каталог устанавливается в /home (проверьте с помощью pwd).

япредполагатьчто у вас настроена подсказкасделай что-нибудь умноеи что вы столкнулись с непредвиденным поведением. Что вы получаете, когда вы echo $PS1?

Проверятьэтот комментарий на unix.stackexchange.comчто может это объяснить.

Связанный контент