Pfadname
Ein Pfadname, auch kurz Pfad, ist eine Zeichenfolge, die eine Datei, ein Verzeichnis, oder je nach Plattform auch andere Ressourcen auf einem Computersystem, zum Beispiel Gerätedateien unter Unix, bezeichnet.
Aufbau
Je nach Betriebssystem besteht ein Pfadname aus folgenden Elementen:
- einer Laufwerks- oder Datenträgerbezeichnung
- einer Liste von Verzeichnissen bzw. (Unter-)Verzeichnissen
- einem Dateinamen – außer bei Verzeichnispfaden, wo dieser logischerweise fehlt.
Bei Dateinamen wird auch von einem absoluten Pfad gesprochen, wenn dieser wie angegeben „vollständig“ ist. Wird ein Dateiname weggelassen und handelt es sich um einen Pfad auf ein Verzeichnis, so wird dies als Verzeichnispfad bezeichnet. Je nach Kontext kann das eine oder das andere Verwendung finden, beispielsweise sind nur Verzeichnispfade für die Umgebungsvariable PATH
sinnvoll, nicht absolute oder relative Pfade auf Dateien.
Fast alle modernen Betriebssysteme sind darauf ausgelegt, Daten (und damit Dateien und Verzeichnisse) auf mehreren Datenträgern zu verwalten. Bei der Adressierung der Daten werden unterschiedliche Wege beschritten:
- Unter Windows beispielsweise wird einem Pfad ein Kennbuchstabe, der Laufwerksbuchstabe, für das entsprechende Laufwerk vorangestellt, der u. a. zur Unterscheidung verschiedener Datenträger dient. Es sind jedoch auch Pfade möglich, denen dieser Kennbuchstabe fehlt, beispielsweise ein Netzlaufwerk, dem kein Laufwerksbuchstabe zugeordnet wurde.
- Beispiel für einen Pfadnamen unter Windows:
C:\privat\TestData\Beispiel.txt
- Hier bezeichnet der Laufwerksbuchstabe
C:
das logische Laufwerk (z. B. eine Partition, ein externer Datenspeicher wie ein USB-Speicherstick, ein Netzlaufwerk), auf den sich die weitere Pfadangabe bezieht. In der obersten Ebene des Dateibaumes darauf gibt es ein Verzeichnisprivat
, darunter ein Unterverzeichnis mit dem NamenTestData
, und dort ist die DateiBeispiel.txt
zu finden.
- Unter Unix und Unix-artigen Systemen (z. B. Linux, BSD-Derivate) sowie solchen, die sich lose an Unix orientieren (z. B. Plan 9, Haiku), gibt es ein Wurzelverzeichnis (englisch root directory), von dem ausgehend rein verzeichnisorientiert adressiert wird. Das Wurzelverzeichnis entspricht damit dem Systemlaufwerk und es liegt in der Regel auf dem Datenträger, von dem der Systemstart erfolgte. Das Betriebssystem unterstützt die Einbindung der weiteren verfügbaren Datenträger dann durch Verwaltung von Einhängepunkten, englisch mount points.
- Beispiel für einen Dateinamen unter Unix:
/home/benutzer/Beispieldatei
- Hier gibt es im Wurzelverzeichnis ein Verzeichnis
home
, darunterbenutzer
(bzw. das jeweilige Benutzerverzeichnis), und dort liegtBeispieldatei
.
Aus der Pfadangabe allein ist oft nicht ersichtlich, auf welchem Datenträger eine Datei liegt, weil die Zuordnung logische Laufwerke erlaubt. Unter Windows ist der Laufwerksbuchstabe entscheidend, wie er z. B. beim Anstecken eines externen Datenspeichers (wie eines USB-Sticks) vergeben wird. Unter Linux folgen derartige Einbindungen normalerweise einer logischen Struktur wie dem Filesystem Hierarchy Standard. Wechseldatenträger sind hier systemweit meist unter /media
zu finden, oder für jeden Benutzer einzeln unter /run/media
oder /run/mount
. Auf klassischem Unix musste ein Benutzer mit den erforderlichen Rechten externe Speichermedien noch per Eingabe entsprechender Kommandos (mount
und umount
) auf der Unix-Shell selbst einbinden, etwa unter /mnt
. Interner Datenspeicher, etwa Partitionen auf der Festplatte, werden hingegen auch weiterhin meist systemweit in der fstab-Datei konfiguriert, obwohl es auch hier inzwischen Automatismen gibt, etwa mit systemd und sog. „auto-mount“-Partitionskennungen der GUID-Partitionstabelle.
Absolute und relative Pfadnamen
Aus Betriebssystemsicht ist ein Pfadname nur unmissverständlich, wenn er wie oben beschrieben vollständig angegeben wird. Um Bedienung und Programmentwicklung zu vereinfachen ist es auf den meisten Systemen aber möglich, mit sogenannten relativen Pfadnamen zu arbeiten. Dabei werden einzelne Komponenten eines Pfadnamens weggelassen, z. B. die Laufwerksangabe oder ein Teil der vorangestellten Verzeichnisliste.
Beispiele für relative Pfadnamen:
- Windows:
subdir\testfile
oder.\autoexec.bat
oder..\daten\tabelle1.xls
- Unix:
../lib/libXYZ.a
Als Bezugspunkte für relative Pfadnamen wird seitens des Betriebssystems das jeweilige Arbeitsverzeichnis herangezogen; beispielsweise wird für jedes laufende Programm das aktuelle Laufwerk sowie das aktuelle Verzeichnis verwaltet. Unvollständige, „relative“ Pfadangaben werden dann ausgehend von den aktuellen Werten interpretiert.
Beispiel (Windows):
- Aktuelles Laufwerk ist
C:
- Aktuelles Verzeichnis ist
\privat\texte
- Ein Zugriff auf den relativen Pfad
..\daten\tabelle1.xls
wird dann ausgehend vonC:\privat\texte
interpretiert alsC:\privat\texte\..\daten\tabelle1.xls
. Die Zeichenfolge..
bedeutet einen Wechsel ins übergeordnete Verzeichnis. Damit lautet der aufgelöste, vereinfachte Pfadname dannC:\privat\daten\tabelle1.xls
. Ebenso kann man in diesem Beispiel mit.\text1.txt
den PfadC:\privat\texte\text1.txt
aufrufen, da.
immer für das aktuelle Verzeichnis steht.
- Anstelle des Laufwerksbuchstabens ist es heute auch üblich geworden, die Namen im UNC-Format anzugeben und anstelle des Laufwerksbuchstabens auch in Windows-Systemen den Servernamen anzugeben. Siehe auch Uniform Naming Convention.
Standardpfad
Je nach Art und Zweck der zu speichernden Dateien erfolgt ihre Ablage standardmäßig an bestimmten Stellen innerhalb hierarchisch strukturierter Verzeichnisbäume. Siehe beispielsweise Initialisierungsdatei#Speicherort.