您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 1浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

斜杠‘/‘ 和反斜杠‘\‘

顺其自然~ 发布时间:2022-03-01 11:11:20 ,浏览量:1

1.从名字上区分
我相信很多人都分不清名称和符号的对应关系,“斜杠”、“反斜杠”和“/”、“\”。
用英文名记:
/ : forward slash,向前的斜杠,就像一个人向前倾;\ : backward slash,向后的斜杠(反方向),就像一个人往后倒。
中文近似义:
/ : 斜杠- 撇斜杠;\ : 反斜杠 - 捺斜杠。
2.背景说明

只从计算机编程角度讲,在Unix系统中,使用了斜杠/作为路径分隔符,因为web最早是在Unix上跑的,所以URL也是使用/作为目录分隔符。后来Windows系统由于在Dos中使用\作为命令行参数eg:cd /d xxx_path(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不存在这种历史遗留问题,从诞生之初就开始使用斜杠(/)作为路径分隔符,因此,两个系统在这种奇怪的地方出现了分叉。

3. 路径
/: 支持linux系统和Windows系统下的路径间隔;
\: 仅支持Windows系统下的路径间隔,在linux系统下该符号作为命令行的强制换行符号。

实例:

Linux在这里插入图片描述

Windows: DOS

斜杠反斜杠

Windows: Matlab在这里插入图片描述4. 其他
\: 转义字符   #适用于各种编程语言、Latex、Markdown等。
/: 除法运算符
5.广义方面的区别 正斜杠(/)

正斜杠(/)是我们平时很多时候都会用到的斜杠,我们经常会见到这样的写法:小明/小红/小强,你/我/他等等。这种格式在各种文章里面十分常见,表示“或”或者是“和”的意思。

浏览器中URL的层级URL标记符(//)以及路径分隔符(/)也是由正斜杠(/)组成,例如"https://zh.wikipedia.org/wiki/", 可以看到里面清一色的都是正斜杠(/)。使用正斜杠(/)的原因据说是web网站最早是在Unix系统下运行的,于是沿袭了Unix的那一套路径表述方式,因此使用正斜杠(/)作为分隔符。

正斜杠(/)也可以用作“除法”或者“分号”的作用,比如说"100÷4"我们在计算机上输入时,由于除号比较难输,经常就会写成"100/4",效果是完全一致的。这种用法应该是从“分号”演化来的,毕竟"4/3"你看做“三分之四”还是看做“4除以3”,都是可以的。

连续两个正斜杠(/)可做“注释”之用,在C++/C#/Java/JavaScript/PHP等主流编程语言中基本上通用:

日期也可以使用正斜杠(/)分隔年月日,例如"2017/11/17",也可以用美国标准"11/17/2017",都表示2017年11月17日。

最后,斜线除了上述用法,也成为连字号的代替品。例如美国空军的飞机序号。"85-1000"是第1000架飞机在1985年制造,使用斜线"85-1001/1050"表示首批连串50部制造的飞机。

// 在控制台打印hello world!
console.log('hello world!')
反斜杠(\)

比起正斜杠(/)的诸多用处,反斜杠(\)的用处可就少多了。如果你还是动不动就用到反斜杠(\),证明你肯定是一个程序员。

反斜杠(\)除了可以在windows下可以做路径分隔符外,最常用的功能就是做转义字符了。许多正则表达式语言都会将它视为字面意义和元字符之前的切换。例如\n是换行,\0是空字符,它们表示的实际上都是一个字符(char);而在一些数学软件(如MATLAB)和维基百科上,可以使用反斜线输入希腊字母。\pi会转成π,\lambda会转成λ。由于反斜杠(\)存在转义字符的作用,因此我们常常在一些代码里面看到形如"C:\\Windows\\System32\\cmd.exe"的路径格式(实际上你看到的双反斜杠(\),我在markdown格式下输入了连续4个反斜杠...),并不代表实际路径是这样的,而是其中连续两个反斜杠(\)发生了“化学反应”,第一个反斜杠(\)代表对后面部分进行转义,而对反斜杠(\)的转义还是反斜杠(\),因此虽然连续输入两个反斜杠(\),但是实际输出时只有一个反斜杠(\)。

另外,在某些程序语言的命令行中,例如在linux中,反斜线常被放在一行的末尾用来指示编译器忽略其后的换行符,使得下一行会被当做同一行语句。这种情况下,反斜线作为一个强制换行符,将代码拆解成“连续行”

6.总结

说到这里,我已经尽可能简洁地把斜杠和反斜杠的区别用法给讲出来了。以下是在找资料时在一篇博文中看到的总结图,感觉很不错。在这里插入图片描述

引用: [1]: Why is the DOS path character ""? | Microsoft Docs [2]: 深入探讨正斜杠和反斜杠 - 简书 [3]: 斜杠"/"与反斜杠"\"有什么区别? - 知乎

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0464s