问题:今天在linux访问某给ip地址的共享文件,访问失败。原因是在网络路径里用了反斜杠,而linux不识别反斜杠,修改为斜杠后问题解决。
使用场景:
总结:除了windows目录和开发语言中,用斜杠‘/’基本都没有错,windows目录也支持‘/’
原因:windows dos系统使用‘/’作为参数引入的标志,为了区分目录和参数,引入了‘\‘
斜杠‘/’:
- 最早的杠,基本场景都可以用‘/’
- 网址
- linux目录
- 网络文件路径
- 即使在windows中,软件的目录配置也最好使用‘/’
- 非windows场景均必须用‘/’
反斜杠‘\’:
- windows独有定义
- windows目录(同时支持‘/’和‘\’)
- 编程语言中的转义字符
历史:
斜杠是电脑中的一个符号,最初是用来做分隔 或 四则运算中的“除号”。对于程序员来说,斜杠的作用就是“分隔”。
斜杠作为分隔的用途很广泛,可以用来分隔目录,分隔网址,分隔一切需要分隔的数据。其作为分隔符的历史也非常久远,最早的操作系统——Unix系统,就是用它做分隔的。
后来,微软退出的dos系统中,/也是用于分隔,但是分隔的目标不是目录,而是参数。/作为参数的分隔符出现,类似linux中的“-”及“–”的作用。但是,/用来分隔参数后,目录和符号的区分就非常不明显了,这一点,有点像windows系统目录中不能直接使用空格,而需要使用双引号引用目录后才能添加空格一样。为了解决目录分隔的问题,微软引入了一个新的分隔符\。
所以,对于一般的应用场景,最好使用/,微软的\才是少数派。而且由于linux系统由于普遍应用于服务器系统,网络上的分隔符也都是/。后来 ,随着DOS退出历史舞台,\做目录分隔符也不是那么必须了。目前的windows系统都是同时支持\和/的。
那么反斜杠就完全没有意义了吗?并不是。\在开发语言中,作为转义字符使用的用途还是非常大的。\+任意符号,代表一个新的符号,可以任意转义;同时作为特殊字符的&、@等符号,也可以被\转义,变为其在符号表中的原始意义。
参考:
斜杠:https://baike.baidu.com/item/%E6%96%9C%E6%9D%A0/863387?fr=aladdin
反斜杠:https://baike.baidu.com/item/%E5%8F%8D%E6%96%9C%E6%9D%A0
彻底理解斜杠和反斜杠的区别:https://www.cnblogs.com/linzworld/p/13784480.html