Я работал в своем терминале, когда я ошибся, когда cd
получил root (/
). Случайно я набрал //
и получил в терминале:
root@weblocalhost://#
Когда я печатаю pwd
, я получаю ответ //
, но когда я печатаю ls -s
, я получаю тот же список, что и в /
каталог.
Когда вы набираете более 2, то есть ///
, вы получаете:
root@weblocalhost:/#
Всегда 1 /
, кроме 2. Есть ли какая-либо разница и для чего //
?
/
эквивалентно //
От спецификации POSIX (добавленный акцент):
3.267 Путь
Строка, которая используется для идентификации файла. В контексте POSIX.1-2008 путь может быть ограничен байтами {PATH_MAX}, включая завершающийся пустой байт. Это имеет дополнительное начало
<slash>
символы, сопровождаемые нулем или большим количеством имен файлов, разделенных<slash>
персонажи. Путь может дополнительно содержать один или несколько запаздывание<slash>
персонажи. Несколько последовательные<slash>
символы считаются тем же как один<slash>
, за исключением случая точно двух продвижения<slash>
персонажи.
И:
4.12 Разрешение пути
...
Путь, состоящий из сингла<slash>
решу к корневому каталогу процесса. Пустой путь не должен быть успешно разрешен. Если путь начинается с двух последовательных<slash>
символы, первый компонент после продвижения<slash>
символы могут быть интерпретированы определенным реализацией способом, хотя больше чем два продвижения<slash>
символы нужно рассматривать как сингл<slash>
символ.
Для хорошего обсуждения исключений (cygwin и каталоги) см.: Как Linux обрабатывает несколько последовательных разделителей пути (/, размещают////имя пользователя///файл)?
Можно добавить несколько наклонных черт к каталогу, и он ничего не изменит.
Например, эти три команды все делают то же:
cd /home
cd /home/
cd /home//
После того, как любой из них, которые мой текущий рабочий каталог, установлен на / домой (свериться pwd
).
Я предполагаю, что Вам настроили Вашу подсказку, чтобы сделать что-то умное и что Вы столкнулись с непредвиденным поведением. Что Вы получаете когда Вы echo $PS1
?
Свяжитесь с комментарием https://unix.stackexchange.com/, который может объяснить это.