2013-05-30 13 views
10

Sappiamo che la directory root è /, e in base a posix, c'è un'altra directory // che differisce da /. Quando ls/e ls //, l'output è lo stesso, così come stat, tuttavia se cd/e cd //, sono diversi, sebbene il contenuto della directory sia lo stesso. Questo mi ha davvero confuso. Qualcuno ha una risposta?cos'è il percorso //, in che cosa è diverso da/

+0

Potete fornire un riferimento, che dice che sono diversi? Inoltre, cosa intendi se "cd /" vs "cd //" sono diversi - come fai a saperlo? –

+0

@MarkkuK. Scusa se non l'ho detto chiaro, vuol dire che PWD non è cambiato. Quindi come detto. Puoi provarlo. – dspjm

+0

Inoltre, se si digita "cd // usr" (ad esempio) invece di "cd/usr", si finisce in "/ usr", bash dice che non si è "// usr" e pwd è "// usr "anche ... – Tom

risposta

18

Da 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

Sulla mia emulazione git bash (tecnicamente una macchina Windows) un tentativo di" ls -l // "risulta nella macchina che prova a leggere ed elencare l'intera rete disponibile ... wow. –