Вам, наверное, уже не раз приходилось замечать некоторую странность, а лучше сказать особенность в относительных и абсолютных путях современных операционных систем. Практически во всех Unix-подобных системах для разделения имен каталогов в пути используется косая черта с наклоном вправо, тогда как в Windows используется обратный слеш, то есть косая черта с наклоном влево. Интересно было бы знать, скрывается ли за этим какой-то смысл, либо появление обратного слеша в Windows это чистая случайность?
Слеш, если вам интересно это знать, в действительности имеет весьма древнюю историю. Возникновение слеша принято относить еще к временам Римской империи. На территории Европы одинарный или простой слеш (/) использовался в качестве запятой, двойной же слеш (//) представлял собой нечто вроде тире. Впоследствии знак // превратился в =, затем он был упрощен и принял вид знакомого всем тире. Сегодня слеш используется как служебный типографский и небуквенный орфографический знак, а также как математический символ.
Особое распространение слеш получил в математике и языках программирования. Все это говорит о том, что причины столь разного использования слеша в операционных системах нужно искать в истории развития компьютерных технологий. К счастью, нам не нужно отправляться в те далекие времена, когда о вычислительной технике еще и мечтать не могли. История компьютерного слеша восходит к середине прошлого века и практически совпадает с появлением первых языков программирования, а значит и первых вычислительных систем, то есть UNIX-систем.
Однако как разделитель имен каталогов прямой слеш в UNIX стал использоваться только в 1970 году. Трудно сказать наверняка, почему разработчики выбрали именно этот символ, но наверняка этому есть разумное объяснение. Что же касается MS DOS, появившейся почти 10 лет после этого события, то в ней также стал использоваться прямой слеш, но не как разделитель имен каталогов, а как ключ командной строки, что явно указывает на прямое родство MS DOS с операционной системой СР/M, созданной еще в 1973 году Гэри Килдаллом.
В том, что в MS DOS 1.0 знак / не использовался как разделитель нет ничего удивительного, так как в первой версии Windows понятие структуры папок попросту отсутствовало. В версии MS DOS 2.0 появилась поддержка директорий, вот тут-то разработчики столкнулись с необходимостью построения иерархии каталогов. Поскольку прямой слеш оказался зарезервированным знаком, использоваться он уже не мог, не могла использоваться и точка (как в DEC), так как в Windows она служила в качестве разделителя между именем и расширением файла.
Выход из ситуации оказался простым. Вместо прямого слеша разработчики Microsoft решили использовать наиболее похожий символ. Таковым и оказался обратный слеш. Однако похоже на то, что разработчики Microsoft так и не удовлетворились принятым решением. Поэтому они решили реализовать поддержку обеих вариантов, и с того момента использовать в качестве разделителя путей стало возможно как прямой, так и обратный слеши. Можете не верить, но работает это и сейчас, правда с некоторыми ограничениями. Независимо от того выполните ли вы строку cd C:/Windows/Cursors или cd C:\Windows\Cursors результат будет один и тот же, в любом случае вы окажитесь в каталоге с курсорами. Тем не менее, использовать прямую черту в качестве разделителя путей не рекомендуется, так как в некоторых случаях это может привести к ошибке.
Спасибо за интересную историческую справку.
Не за что