2014-10-20 20 views
6

Ich habe festgestellt, dass in bash/zsh, wenn ich cd // es mich in ein Verzeichnis mit dem Namen '//' - pwd zeigt, dass so gut wie meine Eingabeaufforderung.Was ist die Bedeutung von // in bash?

Wenn ich mehr als zwei Schrägstriche wie cd /// etc. verwende, setzt es mich einfach in /.

Gibt es eine Bedeutung für das Verzeichnis // in bash?

+4

Ziemlich verwandt: [Unix, Unterschied zwischen Pfad beginnend mit '/' und '//'](http://unix.stackexchange.com/q/12283/40596) – fedorqui

Antwort

10

Die POSIX-Standard sagt // könnte eine bestimmte Art und Weise durch ein konformes Betriebssystem interpretiert werden, während /// äquivalent zu /:

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_12

Wenn ein Pfad mit zwei aufeinanderfolgenden Zeichen beginnt, die ersten Komponenten, die den führenden Zeichen folgen, können in einer implementierungsdefinierten Weise interpretiert werden, obwohl mehr als zwei führende Zeichen als ein einzelnes Zeichen behandelt werden sollen.

Das ist der Grund, warum bash ist // unverändert nur für den Fall das zugrunde liegende Betriebssystem implementiert diese besondere Bedeutung zu halten.

+0

Ich sehe das funktioniert sogar mit 'cd// opt/foo'. Laut 'pwd' ist das aktuelle Verzeichnis' // opt/foo'. Ich sehe das aber nicht mit Kornshell oder Zsh. –

+0

Ah! Ich sehe, dass dies speziell für das Ausführen von Bash auf einem PC (z. B. über Cygwin) festgelegt ist, wobei '// foo/bar' ein freigegebenes Remote-Verzeichnis und nicht nur ein lokales Verzeichnis'/foo/bar' ist. –

+0

@DavidW. Allgemeiner für netzwerkbasierte Dateisysteme, die/host/directory verwenden, um Remote-Freigaben voranzutreiben. Ich vermute, dass POSIX-Details vor Bash/Cygwin liegen. – jlliagre

Verwandte Themen