Это можно рассмотреть либо.
В Linux //
это ничего не значит - несколько последовательных слешей сворачиваются в один, где угодно на пути, включая начало. Смена директории на //
вас /
, как показало readlink /proc/self/cwd
бы выполнение; аналогично, /usr//local///bin
рушится /usr/local/bin
.
Однако некоторые другие Unix-подобные системы, например Cygwin или старая Apollo Domain / OS, используют //
префикс для сетевых путей, таких как //fileserver/path/to/data
. POSIX также позволяет это.
По разным причинам оболочка bash самостоятельно отслеживает текущий каталог (в дополнение к отслеживанию, предоставляемому операционной системой), и в нем есть код, который предотвращает //
свертывание исходного файла и остается совместимым с такими системами. «Особенность» заключается в том, что bash обеспечивает более интуитивное отслеживание текущего каталога, например, когда вы cd
переходите по символической ссылке, bash покажет вам ожидаемый путь, даже если ядро думает иначе. «Ошибка» в том, что bash разрешает //
даже в системах, которые его не используют.