Na moim Linux-ie, w bash, mam dostęp do folderu „double root” oznaczonego dwoma ukośnikami:
tomas:~ $ cd /
tomas:/ $ ls
bin/ cdrom@ ...
tomas:/ $ cd //
tomas:// $ ls
bin/ cdrom@ ...
Zawartość folderu i jego podfolderu jest identyczna z „normalnym” pojedynczym ukośnikiem. Podwójny ukośnik nie znika, gdy uzyskuję dostęp do jego podfolderów. Anomalia nie powtarza się z trzema lub więcej ukośnikami; są to proste synonimy dla katalogu głównego:
tomas:// $ cd home/tomas
tomas://home/tomas $ cd ///
tomas:/ $ cd ////
tomas:/ $
Jakie to miejsce? Czy to błąd? Czy ktoś może wyjaśnić anomalię?
Odpowiedzi:
Z Bash FAQ E10 :
źródło
"To nie jest błąd, to jest funkcja!"
Nadal jesteś w tym samym katalogu głównym. Nie wiem, skąd się to wzięło, ale podejrzewam, że może to mieć coś wspólnego z budowaniem ciągów dla absolutnych ścieżek. Jeśli ktokolwiek wie na pewno, zrób porządek.
źródło
Wiele ukośników jest po prostu ignorowanych przez narzędzia, których użyłeś i zawsze dochodzisz do tego samego folderu głównego.
źródło
Wiele ukośników jest traktowanych jako pojedynczy ukośnik do celów rozpoznawania nazw ścieżek.
To, co widzisz w zachęcie powłoki, to artefakt obsługi bash PS1 (zobacz sekcję „PROMPTING” na stronie podręcznika bash).
Wynik jest tylko kwestią prezentacji; zawsze jesteś w tym samym katalogu głównym. Możesz to sprawdzić, patrząc na
/proc/$$/root
.[edytuj] Cóż, nigdy tego nie wiedziałem: http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap04.html#tag_04_11 Znaczenie „//” nie jest zdefiniowane przez standardy, ale „///” a więcej ukośników jest równoważnych z „/”.
źródło