Arbeitsverzeichnis

Unter dem Arbeitsverzeichnis versteht man in der Informatik jenen Pfad in der Verzeichnisstruktur, in dem man sich gerade befindet und „arbeitet“.[1] Meist ist das aktuelle Verzeichnis identisch mit dem Arbeitsverzeichnis, etwa auf der Shell eines Betriebssystems mit Kommandozeile bzw. Kommandozeileninterpreter, wie beispielsweise einer Unix-Shell, der Eingabeaufforderung oder der PowerShell.

Bedeutung

Für die Arbeit in einer textbasierten Shell (CLI) ist es von Vorteil, wenn sich jede Angabe einer Datei auf das aktuelle Verzeichnis bezieht. Will man z. B. eine Textdatei mit einem Texteditor im Benutzerverzeichnis (unter Unix-artigen Systemen, beispielsweise Linux) öffnen oder erstellen, so tut man dies in einer Unix-Shell nach dem Einloggen ohne weitere Pfadangabe vor dem Dateinamen.

username@computername:~$ nano nur\ Text.txt

Die Textdatei nur Text.txt wird daraufhin im aktuellen Verzeichnis, dem Arbeitsverzeichnis, erstellt, das beim Einloggen per Voreinstellung immer das Benutzerverzeichnis unterhalb von /home ist, also /home/username. Unter Unix wird dieses Verzeichnis oft der Einfachheit halber mit ~ abgekürzt, weshalb es auch im Prompt oft so angezeigt wird. Die erstellte Datei ist also, angegeben mit absolutem Pfad, /home/username/nur Text.txt oder, relativ ausgedrückt, ./nur Text.txt (weil . immer das aktuelle Verzeichnis ist).

Das Arbeitsverzeichnis ist für jeden Prozess bzw. verschiedene Programme unterschiedlich und wird in der Regel an Kindprozesse vererbt. Wird beispielsweise unter Windows ein Programm gestartet, so wird normalerweise dessen jeweiliges Programmverzeichnis als Arbeitsverzeichnis zugewiesen.[2] Für alle Verweise auf eine bestimmte Datei, ohne Angabe eines vollständigen Pfads, wird daher immer das Arbeitsverzeichnis als Basis angenommen. Auch bei relativen Pfadangaben dient es als Basis.[3]

Für jedes Programm lässt sich grundsätzlich ein individuelles Arbeitsverzeichnis festlegen. Beispielsweise findet sich unter Windows diese Einstellung in jedem Dialogfenster für Programmverknüpfungen, in der Einstellung „Ausführen in“.[4]

Gefahren

Da das Arbeitsverzeichnis bei einigen Betriebssystemen vorne zum Standardpfad angehängt wird, besteht auch die Gefahr, dass damit statt den gewünschten globalen Dateien andere Varianten davon geladen werden könnten. Dieses Verhalten ermöglicht zwar auch das Korrigieren von Inkompatibilitäten, indem z. B. eine kompatible Version einer vom Programm nachgeladenen Datei ins Programmverzeichnis kopiert wird, das diese daraufhin statt der inkompatiblen Version des Betriebssystems verwendet, es birgt jedoch auch die Gefahr von DLL Hijacking.

Siehe auch

Einzelnachweise

  1. John R. Levine, Margaret Levine Young: Unix für Dummies. John Wiley, 2006, ISBN 3-527-70265-2, 6. Verzeichnisse für alle Fälle, S. 117, Pfadfinder (eingeschränkte Vorschau in der Google-Buchsuche): „Wenn Sie mit UNIX arbeiten, ist das Verzeichnis, in dem Sie gerade arbeiten, das Arbeitsverzeichnis (Working Directory). Manche Leute nennen es Current Directory (aktuelles Verzeichnis), was auch Sinn macht.“
  2. Eduard Glatz: Betriebssysteme: Grundlagen, Konzepte, Systemprogrammierung. 4., überarbeitete und aktualisierte Auflage. dpunkt.verlag GmbH, 2019, ISBN 978-3-86490-705-0, 9.1 Dateisystemkonzepte, Abb. 9-4: Verzeichnishierarchie (Beispiel für Windows) (eingeschränkte Vorschau in der Google-Buchsuche).
  3. Frank Eller: Visual C# 2010: Grundlagen, Programmiertechniken, Datenbanken. Addison-Wesley Verlag, 2010, ISBN 978-3-8273-2916-5, 21 Dateien und Verzeichnisse, S. 856, Dateien kopieren, verschieben, umbenennen und löschen (eingeschränkte Vorschau in der Google-Buchsuche): „Wenn Sie kein Verzeichnis oder ein relatives Verzeichnis angeben (also nicht den kompletten Pfad inkl. Laufwerksbezeichnung), wird das aktuelle Arbeitsverzeichnis als Basis genommen. Der relative Pfad bezieht sich dann auf dieses Verzeichnis. In der Regel handelt es sich dabei um das Verzeichnis, aus dem das Programm gestartet wurde. Darauf können Sie sich aber nicht verlassen, da es sich stets um unterschiedliche Einstellungen handelt. Das aktuelle Arbeitsverzeichnis erhalten Sie über Directory.GetCurrentDirectory() bzw. die Eigenschaft CurrentDirectory der Klasse DirectoryInfo.“
  4. Günter Born: Windows 7 Tricks, Home Premium: kompakt, komplett, kompetent. Mark+Technik Verlag, 2010, ISBN 978-3-8272-4489-5, 15: Desktop aufpoliert & optimal genutzt, S. 425, Bild 15.3: Registerkarte Verknüpfung und erweiterte Eigenschaften (eingeschränkte Vorschau in der Google-Buchsuche): „Im Feld Ausführen in lassen sich Arbeitsverzeichnisse vergeben…“