Windows 的路徑中表示檔案層級為什麼會用反斜槓 ,而 UNIX 系統都用斜槓 ?

時間 2021-05-30 01:59:14

1樓:巨禾

因為Bill Gates 是左撇子啊,所以覺得反斜槓寫起來順手。

好吧,可能並不是這個原因,但可以用這點來幫助記憶Windows 和UNIX 的斜槓區別。

2樓:

《UNIX環境高階程式設計》前面乙個章節中曾經提到過這個,作者當時悠悠的說——不要問為什麼windows用了「\」,unix卻用「/」,分明是我們unix創立在先嘛(驕傲的表情)……應該去質疑windows他們為什麼不跟我們保持一致,哼!

3樓:zpan

Windows使用反斜槓來分割路徑,繼承自DOS,DOS的前身也就是CP/M。DOS 1.0剛出來時,只支援軟盤,並且不支援目錄結構。

而這時DOS命令已經使用了正斜槓來作為命令引數的起始符號。後來DOS加入了目錄結構支援,為了不與命令引數符號衝突,使用了反斜槓來作為目錄分隔符。

後來的DOS版本中有加入了乙個設定,允許使用者修改命令引數符號,並支援正斜槓作為目錄分隔符。

後來的Windows為了保持向後相容性,一直都繼承了這個用法。現在的Windows API都同時支援正斜槓和反斜槓。但Windows上的應用程式很多仍只支援反斜槓。

4樓:陳甫鵃

親們,這真的不是微軟在和 UNIX 鬧彆扭啊。

Windows 用反斜槓(「\」)的歷史來自 DOS,而 DOS 的另乙個傳統是用斜槓(「/」)表示命令行引數,比如:cd %SystemDrive%

dir /s /b shell32.dll既然 DOS 這邊斜槓被占用了,只好找乙個最接近的。那就是它了。

而在 UNIX 環境中,我們用減號(「-」)和雙減號(「--」)表示命令行引數。

用斜槓表示命令行引數是相容性原因。這個問題最初起源自 IBM。IBM 在最初加入 DOS 開發時貢獻了大批工具,它們都是用斜槓處理命令列引數的。

而這個傳統源自於 DEC/IBM,比如當年的 VMS 就是用斜槓處理命令列引數,它的目錄分隔符是美元符(「$」)。順便說一句,這個傳統也被部分地繼承進了 DOS 和 Windows 體系,日文版的 Windows 就把反斜槓在螢幕上顯示為「」,雖然實際上還是反斜槓。

如今的 Windows 核心在處理路徑時確實可以同時支援斜槓和反斜槓。很多時候我們看到用斜槓時出錯,是因為應用程式層面的原因。比如 cmd.

exe 就不支援用斜槓表示路徑,而PowerShell.exe 支援,也正因為這個原因,PowerShell 開始轉而使用減號作為命令列引數的起始符。

MSDN上有一篇 blog 說得很清楚。傳送門:http://

Windows系統下的windows檔案裡的有許多檔案,使用者可以拿它們來幹什麼?

中國強大 這是乙個好問題,吐槽提問者的,都不知道是什麼東西。windows是乙個很龐大的系統工程。為了實現乙個功能,工程師就會加乙個模組。每個模組又有幾個子模組,有不同的檔案去實現。所以後來就這麼龐大了。這就是典型的工程師思維,比較少考慮美學。如果他們花多一點心思,乙個檔案能夠實現多個功能,那麼wi...

日語中表示場所的 應該如何區分?

Mr.Andyluo 簡單回答吧 1,前面加場所,表示經過,圍繞,離開 例子 1,鳥 空 飛 回 小鳥飛過天際 這裡 表示 經過 2,家 出 出門 這裡的 表示 離開 3,公園 巡 1周回 圍著公園跑1圈 這裡的 表示 圍繞 2,表示 目的地 3,表示移動的方向 區別目的地 1,指最終到達的地方 2...

檔案系統是怎麼通過路徑來知道檔案所在的磁碟位置?

這個問題其實包含兩個子問題 如何根據路徑,定位到改檔案的元資料所在的磁碟位置 如何根據檔案的元資料,找到檔案的資料 第乙個問題,涉及VFS層的資料結構設計 簡單來說是VFS根據目錄樹,逐層lookup,先檢查每級別的子目錄的dentry資料,dentry中會記錄name跟inode對映。第二個問題,...