Was ist das Verzeichnis "//"?


12

Auf verschiedenen Linux-Rechnern können Sie

cd /

und

cd //

Die Shell sagt, dass das aktuelle Verzeichnis '/' oder '//' ist, nachdem der entsprechende Befehl verwendet wurde.

Die Frage lautet also: Was ist der Unterschied zwischen '/' und '//', und wenn die Antwort 'kein Unterschied' lautet, warum wird '//' anders angezeigt als '/'?

Übrigens

cd ///
cd ////
cd /////

Alle Ergebnisse in der Shell besagen, dass das aktuelle Verzeichnis '/' ist

Hier ist eine Beispielsitzung:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
Dies scheint eine bashspezifische Anomalie zu sein. Wenn Sie es cd //in csh oder zsh versuchen pwd, wird nur '/'
Doug Harris

interessant - das wirft etwas licht auf sie
sylvanaar

1
Zum Vergleich: cd //usr/bingibt "// usr / bin", aber cd /usr//bin"/ usr / bin" (in Bash).
Bis auf weiteres angehalten.

Antworten:


14

Fragen wir den Mann selbst (Chester Ramey):

E10) Warum lässt 'cd //' $ PWD als '//'?

POSIX.2 in der Beschreibung von 'cd' besagt, dass drei oder mehr führende Schrägstriche durch einen einzelnen Schrägstrich ersetzt werden können, wenn das aktuelle Arbeitsverzeichnis kanonisiert wird.

Ich nehme an, dies dient der historischen Kompatibilität. Bestimmte Versionen von Unix und früheren Netzwerkdateisystemen verwendeten Pfade der Form // Hostname / Pfad, um auf 'Pfad' auf dem Server 'Hostname' zuzugreifen.


Viel bessere Antwort als die (schon ziemlich gute) von John T.
innaM

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.