既生“/”,何生“\”斜杠的那些事
2024-06-09 加入收藏
大家好,我是小K,在今天的話題開始之前,我想讓大家猜一個問題:
問題:“/”這是正斜杠,還是反斜杠?
借一位大神的理解來說明:“/”是一個人站立著向前傾倒, 而“\”是一個人站立著向后傾倒。
為什么這倆貨那么像,感覺用途也差不多,就不能統一下?
今天我們一起聊聊他們的前世今生:
正斜杠 “/”
早期的Unix系統設計中,正斜杠 “/”被選定作為目錄分隔符。
/home/user/documents
這一選擇主要是由于斜杠在ASCII
字符集中位于更容易訪問的位置,
并且早期計算機系統的鍵盤布局也使其易于輸入。
反斜杠(\)在早期的鍵盤布局中通常需要使用Shift鍵或者位于較不顯眼的位置,這使得它在當時的輸入操作中不如斜杠方便。
隨著互聯網的發展,蒂姆·伯納斯·李(Tim Berners-Lee
)在設計URL(統一資源定位符)時也選擇了使用正斜杠 “/”作為路徑分隔符,以保持與Unix文件系統的兼容性。
反斜杠 “\”
然而在MS-DOS系統中,反斜杠“\”被選定為目錄分隔符。
C:\Users\User\Documents
這一選擇的一個原因是當時的操作系統需要與CP/M
操作系統兼容,而CP/M
使用反斜杠 “\”作為命令行參數的前綴。為了避免沖突,MS-DOS選擇了反斜杠作為目錄分隔符。
CP/M(Control Program for Microcomputers)
是由Gary Kildall
在1974年為Intel 8080/85
基于Zilog Z80
微處理器設計的一種早期操作系統。它在20世紀70年代末和80年代初非常流行,被廣泛用于早期的微型計算機上。
實際使用中的區別
用作目錄分割符
Unix(Linux、macOS和其他類Unix系統中),使用正斜杠 “/”;
/home/user/documents
在Windows操作系統中,使用反斜杠 “\”;
C:\Users\User\Documents
用作運算符號
正斜杠 “/”,表示除法,“//”表示取整除;
反斜杠 “\”,表示轉義。比如 \n
是換行符。
包裹正則表達式
在Perl和JavaScript等語言中,正斜杠 “/” 用于包圍正則表達式。例如:/regex/
。
URL
在URL中,正斜杠 “/”用于分隔協議、域名和路徑。
https://www.google.com/
資源路徑(坑點!!)
在使用Windows環境開發時,出現在普通字符串的路徑,如果是windows文件路徑,則使用 正斜杠/ 和 反斜杠\ 是一樣的;
如果是網絡文件路徑,則必須使用 **正斜杠//**。
1 <img src=".\Image/maishu/1.jpg" /> // 本地文件路徑,/ 和 \ 是等效的
2 <img src="./Image\maishu\1.jpg" />
3 <img src="http://www.google.com/maishu/pic/1.jpg" /> // 網絡文件路徑,一定要使用 斜桿/
最后
**斜杠(/) 和反斜杠(\) **在不同操作系統中被選擇為目錄分隔符,主要原因包括字符在ASCII字符集中的位置、鍵盤布局的便捷性,以及歷史設計決策和兼容性需求。
我覺得讓大家理解這些背景有助于更好地理解不同操作系統的設計選擇和使用習慣。