彻底理解斜杠和反斜杠的区别

前言

鉴于在Windows(开发环境)和Linux(部署环境)之中的路径(斜杠和反斜杠)经常会进行混淆,所以专门写一篇笔记来进行区分。大部分是按照博客园那位老兄的思路进行编写,并且结合另外一些人的想法,进行了整理和排版。

理解

先讲讲我的理解:Windows由于自身的限制,在所有人都用正斜杠”/”的情况下,带了个坏头,用了反斜杠””,万恶之源。就像是Windows的第一个字母W的第一个笔画,反斜杠\的写法,倒退的作用。

知乎上不同人的理解。

  1. ” “/” 英文是forward slash, “\” 是backward slash,
    形象些比喻的话,“/”是一个人站立着向前倾倒->, 而”\”是一个人站立着向后倾倒。“
    img

  2. 知乎用户:“在绝大多数地方,用的都是/(slash),包括Mac/Linux,也包括URL。你唯一需要记住的是,Microsoft这个怪鸡在自己的操作系统里面偏要用\(backslash),使得自己与众不同

  3. 评论区人才:“正斜杠/是一撇,反斜杠\是一捺”。

  4. 我的理解:Windows由于自身的限制,带了个坏头,用了反斜杠,万恶之源。就像是Windows的第一个笔画,反斜杠的写法,倒退的作用。

不同操作系统的区别

  1. Unix使用斜杠/作为路径分割符,而Web应用最先是使用在Unix系统上面,所以目前所有的网络地址都采用斜杠/作为分隔符。Linux又称升级版的Unix,所以路径这方面跟Unix是大同小异的。
  2. Windows由于使用斜杠/作为DOS命令提示符的参数标志了,为了不混淆,所以采用反斜杠\作为路径分隔符。所以目前Windows系统上的文件浏览器都是用反斜杠\作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用得很少,斜杠和反斜杠在大多数情况下可以互换,没有影响。
    DOS命令提示符示例:dir /a (列出当前目录所有文件和目录)

结论

  1. 统一用正斜杠”/”,Windows和Linux都能识别

  2. 网络路径(浏览器地址栏网址)使用 正斜杠/;

  3. Windows文件浏览器上使用 反斜杠\;

  4. Windows本地路径既能使用正斜杠,也能使用反斜杠。

  5. 出现在htm url()属性中的路径,指定的路径是网络路径,所以必须使用 正斜杠/;

    <div 
     style="
         background-image:url(/Image/Control/title.jpg); 
         background-repeat:repeat-x; 
         padding:10px 10px 10px 10px
     ">
     </div>
    // 如果url后面用反斜杠,就不会显示任何背景
    
  6. 出现在普通字符串的路径,如果代表的是Windows文件路径,则使用 正斜杠/和 反斜杠\是一样的;如果代表的是网络文件路径,则必须使用 正斜杠/;

     // 本地文件路径,/ 和 \ 是等效的
     <img src=".\Image/Control/ding.jpg" /> 
     <img src="./Image\Control\cai.jpg" />
    
     // 网络文件路径,一定要使用 斜杆/
     <img src="//hiphotos.baidu.com/yuhua522/pic/item/01a949c67e1023549c163df2.jpg" /> 
    
  7. 单独的一个反斜杠”\”在编程中通常用于转义字符,如\0表示“空字符”\r表示“回车”,\n表示“换行”等;所有通常要用到反斜杠时,要用两个反斜杠”\\”来表示一个反斜杠“\”的含义

  8. 而”\\”则表示反斜杠\的转义字符,在编程中常用于表示反斜杠\不是普通的字符,而是路径的分隔符。如用一个字符串存储保存文件的路径时,路径为F:\caffe\Temp\image.jpg;则用字符串存储时,应该写为str=F:\caffe\Temp\image.jpg;因为若不这样表示,则反斜杠\将会当作普通字符,而非路径的分隔符,可能与后面的字母对应上,发生了转义字符的作用。

参考资料

正斜杠/和反斜杠\的区别 – 阿玛尼迪迪 – 博客园

(2条消息) 正斜杠和反斜杠的区别-CSDN论坛