路径中的正斜杠和反斜杠有什么区别?

路径中的正斜杠和反斜杠有什么区别?

可能重复:
为什么 Windows 使用反斜杠作为路径而 Unix 使用正斜杠?

对于远程和本地路径,正斜杠 (/) 和反斜杠 (\) 之间的主要区别是什么?

如果我没记错的话,反斜杠用于表示当前计算机或网络内的东西,例如 C:\Windows 或 \\172.12.1.34,而正斜杠用于表示当前计算机或网络之外的东西,例如http://www.google.com/

我想知道这是否是一个准确的解释,或者差异实际上是否比这更深,而我给出的例子只是巧合。

答案1

Unix 及其变体一直使用正斜杠 (/) 来表示文件系统层次结构。

但是,Windows 的文件系统分隔符反斜杠 (\) 却源自其前身 MS-DOS。而 MS-DOS 并不是它的创始人。它是从 QDOS 操作系统(借用自 CP/M)移植过来的,MS 买下了 QDOS 操作系统并将其重新设计为 MS-DOS。

由于大多数(如果不是全部)基于 Web 的协议都源自 UNIX(HTTP、FTP 等),因此 Microsoft 遵守这些分隔符以保持兼容性。

答案2

这不是准确的解释。路径分隔符只是一个字符,一个标记,它有点随意,但通常被选择来标记自然分隔。反斜杠作为路径分隔符来自 CP/M、DOS 和 Windows 的血统。斜线来自 Unix 以及可能在它之前的其他系统。

由于大多数标准开发人员都熟悉 Unix,因此选择斜线作为 Internet URL 路径分隔符。Unix 斜线作为路径分隔符通常被认为是规范分隔符。它在键盘上的位置也使大多数需要经常输入斜线的人更容易打字。

即使是跨平台脚本语言,例如 Python,也使用斜线作为指定路径的“规范化形式”。

答案3

在实现层面,Windows 将以与 '\' 相同的方式处理 '/'。我只会使用 '/'。它将使您的所有应用程序都具有可移植性。MySQL 和 python 还会将 '/' 转换为系统上所需的任何内容,具体取决于它们使用的路径分隔符。

'\' 在其他领域(如正则表达式)以及某些终端和编程语言中用作转义字符。这将确保其后的下一个字符将被解释为文字字符,例如行末的 \n \r。

至于关于内部或外部系统的符号,这实际上并不正确。早期在 *nix 系统中,“/” 更受欢迎。后来微软开始流行,现在人们期望的是“\”。但正如我所提到的,微软必须符合 posix(posix 是操作系统应如何运行的标准),这意味着您可以在大多数地方将所有“\”替换为“/”,一切都会顺利进行。

答案4

大多数情况下这只是惯例。

Windows 似乎更喜欢 '\',而 Linux 和 Unix 似乎更喜欢 '/'

您可以详细了解路径以及不同系统上使用的各种符号维基百科

相关内容