Cd (Kommandozeilenbefehl)
# Cd (Kommandozeilenbefehl)

cd, auf manchen Plattformen auch chdir (aus dem Englisch für change directory), ist ein Kommandozeilenbefehl für den Einsatz in Shells, der ein Wechseln des Arbeitsverzeichnisses ermöglicht. Er kommt unter praktisch allen gängigen Betriebssystemen, darunter Unix und Unix-artige Systeme wie Linux, DOS inkl. PC-kompatibles DOS, OS/2, AmigaOS und Windows zum Einsatz. Auf UNIX Version 5 (UNIX Fünfte Ausgabe, Mitte 1974) und früher ist nur das Kommando chdir bekannt. Der kurze Name cd wurde nach dem Aufkommen von 110-Baud-Modems eingeführt um die Arbeitsgeschwindigkeit zu erhöhen.

## Funktion

In den meisten Betriebssystemen kommt das Konzept des Arbeitsverzeichnisses zum Einsatz. Das Arbeitsverzeichnis stellt hier die aktuelle Position in der Verzeichnishierarchie dar. Mit dem Befehl cd kann dieses Arbeitsverzeichnis gewechselt werden, der Benutzer gibt als Parameter für cd das Zielverzeichnis an, dass das neue Arbeitsverzeichnis werden soll. Diese Angabe kann absolut (vom Wurzelverzeichnis ausgehend) oder relativ zum aktuellen Arbeitsverzeichnis geschehen.

## POSIX

Der entsprechende Systemaufruf zum Wechseln des Arbeitsverzeichnisses lautet nach POSIX chdir(2). Die POSIX-Norm gibt dabei auch die wenigen Parameter der unter Unix und Linux üblichen Implementierungen vor.

* -L (csh: -l): Symbolische Links werden im Verzeichnispfad beibehalten
* -P (csh: -p): Symbolische Links werden aufgelöst, der Verzeichnispfad spiegelt nach dem Aufruf von cd also den tatsächlichen Verzeichnisbaum wider
* - (statt eines Zielverzeichnisses): wechselt zum letzten Arbeitsverzeichnis zurück

Die meisten Shells erlauben es dem Benutzer außerdem, in einer Umgebungsvariablen (meist CDPATH) eine Liste von Verzeichnissen anzugeben. Diese Liste wird dann nach passenden Unterverzeichnissen durchsucht, wenn cd mit einer relativen Pfadangabe aufgerufen wird.

Ohne Parameter wechselt cd in das Benutzerverzeichnis des Benutzers, der den Befehl aufgerufen hat, mit cd .. geht es eine Ebene nach oben. In einigen Fällen kommen weitere Parameter hinzu.

Verwandt ist der Befehl chroot, mit dem ein anderes Verzeichnis als temporäres Wurzelverzeichnis angesetzt werden kann.

## DOS/Windows

Unter DOS-basierenden Betriebssystemen mit ihren Laufwerksbuchstaben wechselt der Befehl nur innerhalb eines Laufwerks; unter MS-DOS ist für den Wechsel des Laufwerks selbst ein weiterer Befehl erforderlich; unter Windows kann cd /D verwendet werden. Der sonstige Funktionsumfang ist deutlich eingeschränkt, da DOS weder Benutzerverzeichnisse noch symbolische Links kennt. Die Verknüpfungen unter Windows sind auf DOS-Ebene lediglich Dateien.

Der Aufruf von cd ohne Argumente gibt das aktuellen Verzeichnis aus, analog zu pwd auf POSIX.

Außerdem kann cd .. zu cd.. gekürzt werden, ohne Leerzeichen zwischen dem Kommando cd und dem Parameter ... Das funktioniert nicht auf der Wiederherstellungskonsole der Windows-CD, bei der Windows PowerShell und bei vielen anderen Betriebssystemen.

