Почему Windows использует обратную косую черту для путей и косые черты Unix?

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

Unix представил / как разделитель каталогов примерно в 1970 году. Я не знаю, почему был выбран именно этот персонаж; Система предков Multics использовала > , но дизайнеры Unix уже использовали > вместе с < для перенаправления в оболочке (см. Почему корневой каталог обозначается знаком / ? ).

MS-DOS 2.0 представил \ как разделитель каталогов в начале 1980-х годов. Причина / не была использована, так это то, что MS-DOS 1.0 (который вообще не поддерживал каталоги) уже использовал / чтобы ввести параметры командной строки. Это использовало использование / от CP / M , которое взяло его из VMS . Вы можете прочитать более подробное объяснение того, почему этот выбор был сделан в блоге Ларри Остермана (MS-DOS даже вкратце имел возможность изменить символ опции - и разделитель каталога на / , но он не встал).

/ Он распознается большинством API-интерфейсов на уровне программистов (во всех версиях DOS и Windows). Таким образом, вы можете часто, но не всегда избегать использования / в качестве разделителя каталогов под Windows. Заметным исключением является то, что вы не можете использовать / в качестве разделителя после \\? Префикс, который (даже в Windows 7) является единственным способом указать путь с использованием Unicode или содержать более 260 символов.

Некоторые элементы пользовательского интерфейса поддерживают / как разделитель каталогов под Windows, но не все. Некоторые программы просто передают имена файлов в базовый API, поэтому они поддерживают / и \ равнодушно. В командном интерпретаторе (в command.com или cmd ) вы можете использовать / во многих случаях, но не всегда; Это частично зависит от версии Windows (например, cd /windows работает в XP и 7, но не в Windows 9x). Поле ввода пути проводника принимает / (по крайней мере, от XP вверх, вероятно, потому, что оно также принимает URL-адреса). С другой стороны, стандартный диалог открытия файла отклоняет косые черты .

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

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

сравнить

 dir/w 

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

 dir\w 

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

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

  • Rm на cygwin, не может отменить связь не владельца
  • Возможно ли установить файл .tar?
  • Подключение к сети Wi-Fi через терминал Mac
  • Попытка установить coreutils через MacPorts: «Ошибка: Port coreutils not found»
  • Поверните экран с помощью xrandr на Solaris 10
  • Получение имени предыдущего процесса
  • Bash - каталоги, заканчивающиеся на. И пробелы не могут быть удалены
  • Ls -la symbolics ... что означает этот последний символ?
  • Разрешения Unix-разрешения с пользователями, принадлежащими к той же группе, которые получают доступ к папке
  • Как я могу исправить свой пользовательский PS1 для переноса длинной команды на несколько строк вместо одной строки?
  • Используйте экран GNU в качестве логина "shell"
  • Давайте будем гением компьютера.