2013-05-30 168 views
10

有什麼區別我們知道根目錄是/,根據posix,還有另一個不同於/的目錄。當你ls /和ls //時,輸出與stat相同,但是如果你是cd /和cd //,它們是不同的,儘管目錄內容是相同的。 這讓我很困惑。任何人都有答案?什麼是路徑//它與/

+0

你能提供說,他們是不同的參考?另外,你是什麼意思,如果你「cd /」與「cd //」他們是不同的 - 你怎麼知道? –

+0

@MarkkuK。對不起,我沒有說清楚,這意味着pwd沒有改變。正如devnull所說。你可以嘗試一下。 – dspjm

+0

此外,如果您輸入「cd // usr」(例如)而不是「cd/usr」,則最終輸入「/ usr」,bash表示您不是「// usr」而pwd是「// usr」 「太... – Tom

回答

18

Bash FAQ

E10) Why does `cd //' leave $PWD as `//'? 

POSIX.2, in its description of `cd', says that *three* or more leading 
slashes may be replaced with a single slash when canonicalizing the 
current working directory. 

This is, I presume, for historical compatibility. Certain versions of 
Unix, and early network file systems, used paths of the form 
//hostname/path to access `path' on server `hostname'. 
+0

在我的git bash模擬(技術上是一臺Windows機器)嘗試'ls -l //'導致機器嘗試讀取並列出整個可用網絡......哇。 –