83

Меня раздражает использование Unix в колледже и работа на стороне Windows. Какова история этого решения? Кто-нибудь знает, почему так получилось?

2 ответа2

98

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-адреса). С другой стороны, стандартный диалог открытия файла отклоняет косую черту.

9

Базовый API-интерфейс Windows может принимать как обратную косую черту, так и косую черту для разделения каталогов и файловых компонентов пути, но соглашение Microsoft заключается в использовании обратной косой черты, а API-интерфейсы, которые возвращают пути, помещают обратную косую черту.

MS-DOS 2.0 скопировала иерархическую файловую систему из Unix и, таким образом, использовала косую черту, но (возможно, по настоянию IBM) добавила обратную косую черту, чтобы позволить вводить пути в командной оболочке, сохраняя совместимость с MS-DOS 1.0 и CP/M где косая черта была индикатором параметра командной строки.

сравнить

dir/w

который показывает текущий каталог в широком формате против

dir\w

который запускает файл w в директории dir .

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .