参考深入探讨正斜杠和反斜杠,相当于提炼的笔记,具体可以参考原文
基础知识
正斜杠,又称左斜杠,符号是"/"。
反斜杠,也称右斜杠,符号是"\"。
小结
比起正斜杠的诸多用处,反斜杠的用处可就少多了。如果你还是动不动就用到反斜杠(),证明你肯定是一个程序员。
反斜杠除了在windows下可以做路径分隔符外,最常用的功能就是做转义字符了。
背景知识
Unix内核系统,路径格式仅支持正斜杠分隔,而windows的系统,正斜杠反斜杠都支持。这是个很奇妙的差别。在查询了资料后,我才知道造成这种差别的深层次原因。
windows的命令行(CMD应用程序)跟早期的MS-DOS操作系统的命令格式是前向兼容的。而DOS系统其实有很多历史遗留问题。DOS系统很大一部分参考(抄袭?)自加里·基尔代尔的更早的一款操作系统CP/M。CP/M是数字研究公司(1991年被Novell所兼并)在1974年开发,为8位CPU(如Intel 8080、Zilog Z80等)的个人电脑(PC)所设计的操作系统。在PC市场的黎明阶段,它成为被广泛应用的操作系统。可是因为在向16位CPU的转化上错失机会,在以IBM PC/AT以及IBM PC兼容机为中心的16位PC市场上惨败给Microsoft的MS-DOS,从而从市场上消失。虽然CP/M推出了为Intel 8086而设计的“CP/M 86”以及为Motorola 68000而设计的“CP/M 68k”等版本,但用户几乎不存在。
由于CP/M系统是不支持目录的,/被拿来用作命令行参数的标识符,比如说dir /a, dir /w, dir /q等等(Unix用的是”-“),因此,当MS-DOS系统准备支持目录时,/已被占用,只能使用\来表示路径分隔符了。再后来,windows系统诞生之时,命令行因为要跟MS-DOS兼容,只能把DOS的特性沿用了下来,同时又给支持/作为路径分隔符,于是就造成了现在这种正斜杠(/)反斜杠()都支持作为路径分隔符的情况的出现。而Unix不存在这种历史遗留问题,从诞生之初就开始使用斜杠(/)作为路径分隔符,因此,两个系统在这种奇怪的地方出现了分叉。