問題:今天在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