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/
10
A
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. –
Potete fornire un riferimento, che dice che sono diversi? Inoltre, cosa intendi se "cd /" vs "cd //" sono diversi - come fai a saperlo? –
@MarkkuK. Scusa se non l'ho detto chiaro, vuol dire che PWD non è cambiato. Quindi come detto. Puoi provarlo. – dspjm
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