Dateien, Ordner und Pfade · Übung
Absolute und relative Pfade auflösen
data/observations.csv reicht nicht, um etwas zu finden. Der Pfad sagt dir, wohin du gehen sollst, sobald du weißt, wo du beginnst. Er sagt aber nichts über diesen Startpunkt.
Jeder Pfad wird von einem Startpunkt aus aufgelöst. Ein absoluter Pfad nennt seinen eigenen Startpunkt. Ein relativer Pfad nimmt den Ort, an dem du dich gerade befindest.
Im Dateimanager ist das der Ordner, dessen Inhalt du gerade ansiehst. Sobald du Anweisungen tippst statt klickst, bekommt dieser Ordner einen Fachnamen: das Arbeitsverzeichnis. Derselbe relative Pfad führt von zwei verschiedenen Startordnern zu zwei verschiedenen Dateien.
Zwei Wege zu einer Datei
Angenommen, das Arbeitsverzeichnis ist:
/home/sam/Documents/field-notes
Beide Pfade erreichen dieselbe Datei:
Absolute: /home/sam/Documents/field-notes/data/observations.csv
Relative: data/observations.csv
Der erste / macht den ersten Pfad absolut. Er bedeutet an jedem Ort des Computers dasselbe. Der zweite beginnt mit data, also startet die Auflösung dort, wo du dich gerade befindest.
Wechsle das Arbeitsverzeichnis zu /home/sam/Documents/field-notes/drafts. Derselbe relative Pfad sucht jetzt ein Verzeichnis data in drafts. Dort gibt es keines. Der Pfad hat sich nicht geändert, seine Bedeutung schon.
Um von dort das eigentliche data zu erreichen, gehe zuerst nach oben:
../data/observations.csv
Zwei Punkte, .., bedeuten das Elternverzeichnis. Ein Punkt, ., bedeutet das aktuelle Verzeichnis. Deshalb landen ./data/observations.csv und data/observations.csv am selben Ort.
Das folgende Diagramm verfolgt beide Startpunkte zur selben absoluten Datei: zuerst von field-notes, dann von drafts.

Das Ziel ist nicht umgezogen. Nur die Wegbeschreibung hat sich geändert, weil dein Startpunkt sich geändert hat.
Dieselbe Überlegung unter Windows
Arbeitsverzeichnis:
C:\Users\Sam\Documents\field-notes
Beide erreichen die Datei:
Absolute: C:\Users\Sam\Documents\field-notes\data\observations.csv
Relative: data\observations.csv
Der Laufwerksbuchstabe zusammen mit dem Backslash nach dem Doppelpunkt macht den ersten Pfad absolut. In C:data\observations.csv fehlt dieser Backslash. Es ist kein vollständiger Pfad von der Laufwerkswurzel aus. Schreibe C:\..., wenn du absolut meinst. Dann entsteht die Mehrdeutigkeit gar nicht.
Von C:\Users\Sam\Documents\field-notes\drafts aus:
..\data\observations.csv
Dein Arbeitsverzeichnis ist /home/sam/Documents/field-notes/drafts. Welcher relative Pfad erreicht /home/sam/Documents/field-notes/data/observations.csv?
Einen Pfad auf Papier auflösen
Tu das, bevor du einen Befehl etwas ändern lässt, und wiederhole es, bis es automatisch geht:
Schreibe das Arbeitsverzeichnis auf.
Entscheide, ob der Pfad an einer Wurzel neu beginnt oder an deinem aktuellen Ort startet.
Gehe die Segmente von links nach rechts durch. Bleibe bei
.stehen, gehe bei..nach oben und bei einem Namen hinab.Schreibe auf, wo du gelandet bist, und vergleiche es mit dem beabsichtigten Ziel.
Versuch es: Arbeitsverzeichnis C:\Users\Sam\Documents\field-notes\data\raw, Pfad ..\..\drafts\outline.txt:
Start: C:\Users\Sam\Documents\field-notes\data\raw
.. C:\Users\Sam\Documents\field-notes\data
.. C:\Users\Sam\Documents\field-notes
drafts C:\Users\Sam\Documents\field-notes\drafts
target: C:\Users\Sam\Documents\field-notes\drafts\outline.txt
Das braucht vier Zeilen und kein Raten. Es funktioniert auf jeder Plattform auf dieselbe Weise.
Arbeitsverzeichnis /home/sam/field-notes/data/raw, Pfad ../../drafts/outline.txt. Bringe die Auflösungsschritte in die richtige Reihenfolge:
Ziehe die Optionen in die richtige Reihenfolge oder verwende die Pfeiltasten.
..führt zu/home/sam/field-notesdraftsführt hinab zu/home/sam/field-notes/draftsBeginne bei
/home/sam/field-notes/data/raw..führt zu/home/sam/field-notes/dataoutline.txtbenennt die Datei unter/home/sam/field-notes/drafts/outline.txt
Wenn sich dieselbe relative Schreibweise heute anders verhält, kann ein geändertes Arbeitsverzeichnis die Ursache sein. Vergleiche den heutigen Startpunkt und den Zielbaum, bevor du etwas verschiebst. Ein vom falschen Ort aus aufgelöster Pfad kann ein anderes Ziel erreichen oder gar nichts benennen. Beides liefert Hinweise darauf, wo der Weg erstmals nicht mehr passte.
Du hast all das ohne Shell gemacht. In der letzten Lektion dieses Kapitels wenden wir es auf ein Projekt an, das du auch in sechs Monaten noch wiederfindest.