3

Я работал в терминале bash в моей системе (OSX 10.8.3 / bash версия 3.2.48 (1) -релиз (x86_64-apple-darwin12)) и случайно набрал «cd //» вместо «cd /» для вернуться в корневой каталог.

Странно было то, что это привело меня к «//», которое, когда я перечислял, выглядело точно как «/».

Итак, мои вопросы: есть ли смысловая разница между этими двумя путями?
Что, если что-то и есть цель этих двух путей? и / или это баг?

1 ответ1

5

В Unix и его производных несколько слэшей, следующих друг за другом, имеют то же значение, что и один слеш. OS X сертифицирована Unix, и, следовательно, следует этой спецификации.

Из Спецификации Single Unix об имени пути:

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

Единственный особый случай - это путь, начинающийся с // . Его интерпретация зависит от реализации (см. Разрешение пути в SUS):

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .