2013-05-30 20 views
10

Wiemy, że katalog główny to /, a według posixa istnieje inny katalog //, który różni się od /. Kiedy ls/i ls //, dane wyjściowe są takie same, tak jak stat, jednak jeśli używasz cd/i cd //, są różne, chociaż zawartość katalogu jest taka sama. To naprawdę mnie zdezorientowało. Czy ktoś ma odpowiedź?czym jest ścieżka //, czym różni się od/

+0

można podać odnośnik, który mówi, że jest inaczej? Co masz na myśli, jeśli "cd /" kontra "cd //" są różne - skąd wiesz? –

+0

@ MarkkuK. Niestety nie powiedziałem tego wyraźnie, oznacza to, że pwd się nie zmieniło. Tak jak powiedział devnull. Możesz tego spróbować. – dspjm

+0

Dodatkowo, jeśli wpiszesz "cd // usr" (na przykład) zamiast "cd/usr", skończysz w "/ usr", bash mówi, że jesteś un "// usr", a pwd to "// usr "too ... – Tom

Odpowiedz

18

Od 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

Na mojej emulacji bitu git (technicznie maszyna Windows) próba' ls -l // 'powoduje, że maszyna próbuje odczytać i wyświetlić całą dostępną sieć ... wow. –