2013-12-19 66 views
27

我輸入一個命令cd //而不是cd /錯誤和而不是讓我所期待的外殼(bash)的錯誤顯示的提示,就好像我在//目錄: -//在`cd //`中的雙斜槓是什麼意思?

<username>@<hostname>://$ 
<username>@<hostname>://$ pwd 
// 

列出目錄的內容顯示它與/相同。

那究竟cd //cd /有什麼不同?

+2

沒有區別。嘗試「//////////」,它也會起作用。 –

+2

「//////////」起作用,但我用一個'/'獲得了不同的提示。 – vitaut

+7

屬於Linux堆棧,在這裏顯然是題外話題。 –

回答

36

實際上它沒有任何意義,並且被忽略。

Bash FAQ E10:

E10)爲什麼 'CD //' 假$ PWD爲 '//'?

POSIX.2在其對'cd'的描述中指出,當規範化當前工作目錄時,可以用單斜槓替換三個或更多前導斜槓 。

這是,我認爲,歷史兼容性。某些版本的 Unix和早期的網絡文件系統使用 //主機名/路徑的路徑來訪問服務器'主機名'上的'路徑'。

另外,Unix standards狀態:

與兩個連續的斜線開始可以被解釋在一個實現定義方式 ,雖然多於兩個主導 斜線應作爲一個單一的斜槓待處理的路徑名。

15

AskUbuntu上的這個answer確認它們是相同的目錄。此外,它有助於引用POSIX Pathname Resolution specification

由單個斜線組成的路徑名應解析爲進程的根目錄。無效的路徑名不能成功解析。以兩個連續的斜線開始的路徑名可以用實現定義的方式解釋,但是兩個以上的斜線應該被視爲單斜線。

相關問題