Почему Windows использует обратную косую черту для путей и прямую косую черту Unix?
Меня раздражает использование Unix в колледже и работа на стороне Windows. Какова история этого решения? Кто-нибудь знает, почему так получилось?
2 ответа
Unix представил /
как разделитель каталогов где-то в 1970 году. Я не знаю, почему именно этот символ был выбран; Предок системы Multics используется >
, но дизайнеры Unix уже использовали >
вместе с <
для перенаправления в оболочке (см. Почему корневой каталог обозначен /
знак?).
MS-DOS 2.0 представила \
в качестве разделителя каталогов в начале 1980-х годов. Причина /
MS-DOS 1.0 (который вообще не поддерживал каталоги) уже использовался /
ввести параметры командной строки. Потребовалось это использование /
из CP / M, который взял его из VMS. Вы можете прочитать более подробное объяснение того, почему этот выбор был сделан в блоге Ларри Остермана (в MS-DOS даже кратко была возможность изменить символ опции на -
и разделитель каталогов для /
, но это не прилипало).
/
это признается большинством API уровня программиста (во всех версиях DOS и Windows). Таким образом, вы можете часто, но не всегда сойти с рук с помощью /
в качестве разделителя каталогов под Windows. A notable exception is that you can't use /
as a separator after the \\?
prefix which (even in Windows 7) is the only way to specify a path using Unicode or containing more than 260 characters.
Some user interface elements support /
as a directory separator under Windows, but not all. Some programs just pass filenames through to the underlying API, so they support /
а также \
indifferently. In the command interpreter (in command.com
или же cmd
), you can use /
in many cases, but not always; this is partly dependent on the version of Windows (for example, cd /windows
works in XP and 7 but did not in Windows 9x). The Explorer path entry box accepts /
(at least from XP up; probably because it also accepts URLs). On the other hand, the standard file open dialog rejects slashes.
Базовый API-интерфейс Windows может принимать как обратную косую черту, так и косую черту для разделения каталогов и файловых компонентов пути, но соглашение Microsoft заключается в использовании обратной косой черты, а API-интерфейсы, которые возвращают пути, помещают обратную косую черту.
MS-DOS 2.0 скопировала иерархическую файловую систему из Unix и, таким образом, использовала косую черту, но (возможно, по настоянию IBM) добавила обратную косую черту, чтобы позволить вводить пути в командной оболочке, сохраняя совместимость с MS-DOS 1.0 и CP/M где косая черта была индикатором опции командной строки.
сравнить
dir/w
который показывает текущий каталог в широком формате против
dir\w
который управляет w
файл в директоре dir
,
Рекомендации: