为什么只有 Windows 使用反斜线?( 译文 )

在这之前,大家应该都很了解,几乎所有需要使用 路径描述 的地方,比如类 Unix、Linux,或者是网站 URL,都是使用的是 /,唯独 Windows 一家使用的是 \,这是不是有点奇怪?

今天在 How-To Geek 上看见了一篇写的比较详细的相关历史,我将其翻译过来,为需要了解的人提供便利。

英文原文:Why Windows Uses Backslashes and Everything Else Uses Forward Slashes?

你是否注意到过,在 Windows 上出现的 C:\Windows\,在 Web 上出现的 http://howtogeek.com/,和在 Linux、Android、Mac OS X 等操作系统之上出现的 home/user/

可以发现的是,在 Windows 使用的是反斜线 \ 作为路径描述,而其他几乎所有地方,似乎用的都是正斜线 /

现代操作系统会在你输入错误类型的斜线的时候,自动地去尝试纠正你的键入错误。所以在大多数时候,你输入的是何种斜线并不要紧,但是,有些时候,知道这些不同之处仍然很重要。

为什么 Windows 使用反斜线:一段历史

那么为何 Windows 显得如此格格不入呢?归根结底,这和几次几十年前偶然发生的历史事件有关。

1970 年左右,Unix 初次引入正斜杠——即 / 字符作为文件目录的分隔符,我们也并不知道 Unix 到底为什么会选择 /,总而言之,正斜线 / 从那时起就这样被历史选中。

在今天看来很难想象的是,1981 年发布的 Windows DOS 原始版本,即 MS-DOS 1.0,根本不支持文件目录。包含在 DOS 下的大多数实用程序都是由 IBM 写的,他们使用的是 / 字符作为“转换”字符。这在今天仍然可以在命令行中得到体现:

  • 运行 dir /w :指定 dir 命令以宽列表格式( w 选项 )输出当前路径下文件目录。

  • 运行 dir c:\ :指定 dir 命令将以列表的形式显示磁盘驱动器 C:\ 下的所有内容。

上面两个命令使用到了不同的斜线类型,标识的是你到底指的是一个命令,还是一个文件路径。

注意:在 Unix 上, 起转换作用的是 -,而不是 / 字符。

那时候,人们并没有真的在乎他们正在使用的某个字符是否已经在其他操作系统上因不同的目的而使用。

MS-DOS 2.0 开始引入了对文件目录的支持,但是 IBM 想要与原始版本的 DOS 实用程序和其他要求使用 / 字符作为转换用途的的程序保持兼容。

而由于 Microsoft 已经使用了 / 字符用于其他用途,所以他们这里不能再重复使用 /

IBM 最终选择了 \ 字符替换了 /,两者在视觉上也十分地相似。

今天,Windows 也许再也没有在 DOS 基础之上建立,但是你仍然可以在 Windows 的整个发展史中发现从 DOS 时代遗留至今的传统,比如在 Windows 文件系统中仍然可以看见使用反斜线和磁盘分区标号等特征。

许多关于这点的细节都来自于 Microsoft employee Larry Osterman’s blog post on the subject, 这篇文章中包含了来自 Microsoft 公司中参与过这些决定的成员的更详细的内部信息。

为什么其他的任何系统都使用前斜线?

所有的这些历史在今天看来都已无关紧要,但是 Web 浏览器跟随了 Unix 的习俗,使用了 / 字符作为网页地址描述。

一个典型的 Windows 用户可以在输入 Web 地址的时候使用前斜线,而在输入本地文件夹位置的时候使用反斜线,所以这可能比较让人迷惑。

此外,其他协议如 FTP,也同样跟随 Unix 习俗。而且就算你正在一个 Windows 主机上运行一个 Web 服务器或者是 FTP 服务器,它们使用的都是前斜线,这是因为这些协议就是这么要求的。

其他操作系统使用前斜线也是同一个原因:保留了 Unix 习俗。

Linux 是一个类 Unix 操作系统,所以 Linux 使用和 Unix 同类型的正斜线。Mac OS X 是基于 BSD 的,也是另一种类 Unix 操作系统。其他用户操作系统比如 Android、Chrome OS 和 Steam OS 等都是基于 Linux 的,所以他们也使用同一种类型的斜杠。

这个区别重要吗?

一个更有趣的问题是该区别是否真的重要。

浏览器和操作系统开发者似乎意识到用户已经被迷惑了,所以他们经常会跳出自己的习惯之外,而去接受任何可能出现的斜线类型。

如果你在 Google Chrome、Mozilla Firefox,或者是 Internet Explorer 等浏览器中的地址栏输入了 http:\\howtogeek.com\,这些浏览器都会将其纠正为 http://howtogeek.com/,然后正常加载这个网站。

如果你在 Windows 资源管理中输入了 C:/Users/Public 并回车,它也会被自动地纠正为 C:\User\Public,然后定位到正确的位置。

对于这点,DOS 开发者就算在早期年代也不会满意,所以他们使 DOS 接受了两种类型的斜线字符作为路径标识使用。

所以在今天,你仍然可以在命名提示符后面输入类似 cd C:/Windows/ 然后进入到正确的文件夹下面。

然而,这个特性不会在 Windows 的任何地方都管用。如果你打开一个对话框然后输入一个路径比如 C:/Users/Public,回车后你会看到有错误信息提示:文件名无效。

同样,如果在其他基于 Web 的应用程序中尝试将路径打成 http:\\howtogeek.com\,也许也会提示同样的错误。这些特性决定于程序是会为你自动纠正,还是直接输出一个错误。

一般情况下,你可以忘了有两种不同的斜线存在,但是偶尔,它们确实很重要。

每个人都使用唯一不变的分离符作为文件路径的描述当然比较方便,但是历代 Windows 为了完全地向后兼容,即使在 80 年代早期,也依然保留了使用反斜线作为文件目录标识的传统。

本文最后修改时间: 2015年09月28日 17:21:56 (完) CC BY-NC-ND 3.0

若您发现文章中的错误,并愿告知于我,或想与我交流,我的联系方式在: Contacts


上一篇 关于 "Hack"

All The Best

下一篇 音乐和歌词、故事与道理