斜杠’/‘和反斜杠’\’
引言:从大一进入信息专业,正式接触计算机、代码也有几年了。一开始迷迷糊糊学Ascii码,很多特殊字符都需要转义,比如换行符\n
,自那时起我就拎不清转义符是斜杠还是反斜杠,常常是在代码中先试一遍知道“哦,是反斜杠\
。后来接触了Linux系统,常常搞不清文件路径分隔符是\
还是/
,就变成了随缘使用,哪个没错用哪个。再后来,去知乎搜二者的区别,发现分不清这俩的还真不止我一个人,所以,有了一个想法,尽可能完整的写一篇区分/
和\
的文章,让自己彻底搞清,以后在这个问题上别再迷迷糊糊,也分享出来和大家一起进步。
1.从名字上区分
我相信很多人都分不清名称和符号的对应关系,“斜杠”、“反斜杠”和“/”、“\”。
- 用英文名记:
/
: forward slash,向前的斜杠,就像一个人向前倾;
\
: backward slash,向后的斜杠,就像一个人往后倒。 - 中文近似义:
/
: 斜杠- 撇斜杠;
\
: 反斜杠 - 捺斜杠。
2.背景说明
只从计算机编程角度讲,在Unix系统中,使用了斜杠/
作为路径分隔符,因为web最早是在Unix上跑的,所以URL也是使用/
作为目录分隔符。后来Windows系统由于在Dos中使用\
作为命令行参数eg:cd /d xxx_path
(Unix中使用 “-”,"–"作为命令行参数),于是使用反斜杠\
作为路径分隔符,这也是为很么使得很多人开始混淆两种斜杠的用法。
但是,现在Windows下也可以使用/
作为路径分割符了。
微软有一篇博文对于这一点讲的很清楚,可以看一下。
3. 路径
/: 支持linux系统和Windows系统下的路径间隔;
\: 仅支持Windows系统下的路径间隔,在linux系统下该符号作为命令行的强制换行符号。
实例:
- Linux
- Windows: DOS
- Windows: Matlab
4. 其他
\: 转义字符 #适用于各种编程语言、Latex、Markdown等。
/: 除法运算符
总结
说到这里,我已经尽可能简洁地把斜杠和反斜杠的区别用法给讲出来了。以下是在找资料时在一篇博文中看到的总结图,感觉很不错。
引用:
[1]: https://blogs.msdn.microsoft.com/larryosterman/2005/06/24/why-is-the-dos-path-character/
[2]: https://www.jianshu.com/p/ba5a89b6f9ec
[3]: https://www.zhihu.com/question/20254855