Почему 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,

Рекомендации:

Другие вопросы по тегам