Меня раздражает использование 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. Заметным исключением является то, что вы не можете использовать /
в качестве разделителя после \\?
префикс, который (даже в Windows 7) является единственным способом указать путь, используя Юникод или содержащий более 260 символов.
Некоторые элементы пользовательского интерфейса поддерживают /
как разделитель каталогов в Windows, но не все. Некоторые программы просто передают имена файлов в базовый API, поэтому они поддерживают /
и \
безразлично. В интерпретаторе команд (в command.com
или cmd
) вы можете использовать /
во многих случаях, но не всегда; это частично зависит от версии Windows (например, cd /windows
работает в XP и 7, но не в Windows 9x). Поле ввода пути Explorer принимает /
(по крайней мере, начиная с XP; возможно потому, что оно также принимает URL-адреса). С другой стороны, стандартный диалог открытия файла отклоняет косую черту.
Базовый API-интерфейс Windows может принимать как обратную косую черту, так и косую черту для разделения каталогов и файловых компонентов пути, но соглашение Microsoft заключается в использовании обратной косой черты, а API-интерфейсы, которые возвращают пути, помещают обратную косую черту.
MS-DOS 2.0 скопировала иерархическую файловую систему из Unix и, таким образом, использовала косую черту, но (возможно, по настоянию IBM) добавила обратную косую черту, чтобы позволить вводить пути в командной оболочке, сохраняя совместимость с MS-DOS 1.0 и CP/M где косая черта была индикатором параметра командной строки.
сравнить
dir/w
который показывает текущий каталог в широком формате против
dir\w
который запускает файл w
в директории dir
.
Рекомендации: