我輸入一個命令cd //
而不是cd /
錯誤和而不是讓我所期待的外殼(bash)的錯誤顯示的提示,就好像我在//
目錄: -//在`cd //`中的雙斜槓是什麼意思?
<username>@<hostname>://$
<username>@<hostname>://$ pwd
//
列出目錄的內容顯示它與/
相同。
那究竟cd //
和cd /
有什麼不同?
我輸入一個命令cd //
而不是cd /
錯誤和而不是讓我所期待的外殼(bash)的錯誤顯示的提示,就好像我在//
目錄: -//在`cd //`中的雙斜槓是什麼意思?
<username>@<hostname>://$
<username>@<hostname>://$ pwd
//
列出目錄的內容顯示它與/
相同。
那究竟cd //
和cd /
有什麼不同?
實際上它沒有任何意義,並且被忽略。
E10)爲什麼 'CD //' 假$ PWD爲 '//'?
POSIX.2在其對'cd'的描述中指出,當規範化當前工作目錄時,可以用單斜槓替換三個或更多前導斜槓 。
這是,我認爲,歷史兼容性。某些版本的 Unix和早期的網絡文件系統使用 //主機名/路徑的路徑來訪問服務器'主機名'上的'路徑'。
另外,Unix standards狀態:
與兩個連續的斜線開始可以被解釋在一個實現定義方式 ,雖然多於兩個主導 斜線應作爲一個單一的斜槓待處理的路徑名。
AskUbuntu上的這個answer確認它們是相同的目錄。此外,它有助於引用POSIX Pathname Resolution specification:
由單個斜線組成的路徑名應解析爲進程的根目錄。無效的路徑名不能成功解析。以兩個連續的斜線開始的路徑名可以用實現定義的方式解釋,但是兩個以上的斜線應該被視爲單斜線。
沒有區別。嘗試「//////////」,它也會起作用。 –
「//////////」起作用,但我用一個'/'獲得了不同的提示。 – vitaut
屬於Linux堆棧,在這裏顯然是題外話題。 –