Was bedeutet der Pfad '/../'?

17

Sie fragen sich, wo ein Pfad, der so aussieht, auf eine Datei außerhalb verweist ? Ich vermute, es könnte so etwas wie immer das Stammverzeichnis und dann das relative übergeordnete Verzeichnis zu der Datei angeben, in der es geschrieben wurde?

Eugene Lai
quelle
1
Das übergeordnete
Element
1
Meinen Sie also, das Schreiben von /../ ist dasselbe wie / dann ...?
Eugene Lai
1
Ja ist es. Sie können nicht zum übergeordneten
Element
3
Siehe jedoch Unix, Unterschied zwischen Pfad, der mit '/' und '//' beginnt .
G-Man sagt, dass Monica
/../ist nur dann sinnvoll, wenn es sich innerhalb eines Pfades befindet.
Amani Kilumanga

Antworten:

32

Lasst /../uns Stück für Stück zusammenbrechen

Der erste /gibt das Stammverzeichnis des Dateisystems an. Dies ist die oberste Ebene des Dateisystems

.. bedeutet der übergeordnete Ordner Da wir uns jedoch auf der obersten Ebene befinden, können wir nicht höher gehen, sodass wir uns immer noch auf der obersten Ebene befinden

Hinzufügen /am Ende kennzeichnet einen Ordner. Dies ist niemals obligatorisch, es sei denn, Sie geben einen Unterordnerpfad oder eine Datei an. Wir befinden uns also immer noch im obersten Ordner des Dateisystems.

Ist /../also nicht anders als tippen/

Keltari
quelle
24
Außer wenn Sie in der Chroot sind und der Kernel so fehlerhaft ist, dass Sie mit solchen Tricks der Chroot entkommen können. (Das war vor Jahren der Fall, glaube ich.)
grawity
8
Der abschließende Schrägstrich kann in einigen Fällen erheblich sein. Wenn es sich beispielsweise /exampleum einen Symlink zu einem Verzeichnis handelt, ls -l /examplewird der Symlink angezeigt, wohingegen ls -l /example/der Inhalt des Verzeichnisses angezeigt wird.
Flimm,
Sie könnten sich von cd ../abc dem ../unterscheiden, was einen Unterschied macht. Ich denke, es ist nur für relative Pfade nützlich, nicht für absolute Pfade.
Barlop
1
@barlop ../kann sich auf absolute Pfade auswirken: /foo/bar/../quux= /foo/quux. Einige weitere nützliche Beispiele: 1) Wenn Sie feststellen, dass Sie gerade einen Tabulator erstellt haben, wurde ein sehr langer Verzeichnisname erstellt, der jedoch nicht der von Ihnen gewünschte war. ../ist möglicherweise schneller als 50-maliges Zurücksetzen. 2)foo=/long/absolute/path/to/foo; bar=$foo/../bar;
8bittree
1
@grawity Das Schließen des ..Fluchtweges bei der Implementierung chrootals Gefängnis ist genauso naheliegend wie das Schließen der Scheunentür, um die Tiere darin zu halten. Einen solchen Fall verpassen Sie nicht: den naheliegendsten Fluchtweg. Das lässt mich vermuten, dass frühe chrootImplementierungen möglicherweise keine Unausweichlichkeit vorausgesetzt haben .
Kaz