Was ist der doppelte Schrägstrich (//)?


29

Ich tippte versehentlich cd //statt cd /. Zu meiner Überraschung wurde das aktuelle Verzeichnis als angezeigt //.

Was ist das für ein Verzeichnis? Warum existiert es?

apple@snipped $ pwd
/home/apple
apple@snipped $ cd /
apple@snipped $ pwd
/
apple@snipped $ cd //
apple@snipped $ pwd
//
apple@snipped $ cd ///
apple@snipped $ pwd
/

Antworten:


42

//ist in der Regel das gleiche wie /. ///muss dasselbe sein wie /.

lshätte Ihnen gezeigt, dass cd //Sie zum Stammverzeichnis geführt haben, genauso wie cd /.

$ cd /
$ ls
bin
boot
dev
...
$ cd //
$ ls
(same as above)

Der technische Weg, um zu bestätigen, dass es sich definitiv um dasselbe Verzeichnis handelt, ist:

$ cd /
$ stat -c "%i" .
2
$ cd //
$ stat -c "%i" .
2

Sie geben dieselbe Inode-Nummer aus, was bedeutet, dass sie dasselbe sind.

Die wichtigsten Details sind in der POSIX Pathname Resolution-Spezifikation dokumentiert :

Ein Pfadname, der aus einem einzelnen Schrägstrich besteht, wird in das Stammverzeichnis des Prozesses aufgelöst. Ein Nullpfadname kann nicht erfolgreich aufgelöst werden. Ein Pfadname, der mit zwei aufeinanderfolgenden Schrägstrichen beginnt, kann implementierungsdefiniert interpretiert werden, obwohl mehr als zwei führende Schrägstriche als ein einzelner Schrägstrich behandelt werden sollen.

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.