Der Befehl cd steht für change directory und dient - unter Berücksichtigung von Groß-/Kleinschreibung! - zum Wechsel in ein (Unter-)Verzeichnis. cd ist eine von der Shell (zum Beispiel der Bash und der Dash) mitgelieferte Funktion (bultin).
Verwendung
cd wird mit folgendem Syntax in einem Terminal aufgerufen:
cd [OPTION] VERZEICHNIS
Bei den meisten Shells kennt cd mindestens die folgenden beiden Optionen:
Option | Beschreibung |
-L | cd folgt der logischen Verzeichnisstruktur (Standard) |
-P | cd folgt der physischen Verzeichnisstruktur |
Die Bash kennt auch noch die Optionen -e und -@Normalerweise wechselt cd in das angegebene Verzeichnis, sofern dieses existiert und der Benutzer dieses auch betreten darf. Damit wird dieses zum aktuellen Arbeitsverzeichnis. Im Fehlerfall bleibt man im vorherigen Arbeitsverzeichnis.
Beispiele
Das gewünschte Verzeichnis kann absolut mit vorangestelltem / von der Verzeichniswurzel aus oder relativ vom aktuellen Verzeichnis aus angegeben werden:
cd /usr/local # Wechsel nach /usr/local
cd bin # Wechsel von /usr/local nach /usr/local/bin
Die Arbeitsweise für die Angabe per relativem Verzeichnis kann mit der Variablen CDPATH geändert werden. Das neue Verzeichnis wird zuerst im aktuellen Verzeichnis und dann in den mit dieser Variablen angegebenen Verzeichnissen gesucht. In CDPATH gibt man die Verzeichnisse durch „:“ getrennt an:
CDPATH='/:/tmp' # durchsuche akt. Verz., dann /, dann /tmp
Wird kein Verzeichnis angegeben, so wechselt cd in das mit der Variable HOME angegebene Verzeichnis; in der Regel ist dies das Home-Verzeichnis des aktuellen Benutzers. Wenn HOME nicht gesetzt ist, macht cd gar nichts.
cd # Wechselt nach $HOME
Wird ein „-“ angegeben, so wechselt cd in das vorherig benutzte Verzeichnis:
cd /tmp # Wechsel ins tmp-Verzeichnis
cd /usr/local #
Wechsel nach /usr/local
cd - # Wechselt wieder ins tmp-Verzeichnis
Das übergeordnete Verzeichnis wird kurz mit zwei Punkten gekennzeichnet:
cd .. # Wechselt ins übergeordnete Verzeichnis also z.B. von /home/user nach /home
cd ../user2 # Wechselt ins übergeordnete Verzeichnis und von dort nach user2, also z.B. von /home/user nach /home/user2
Will man in ein Verzeichnis wechseln, dessen Name Leerzeichen enthält, so muss man diese durch vorangestellte \ maskieren. Das wird auch automatisch gemacht, wenn man den Pfad wie gewohnt mit Tab ⇆ vervollständigt. Alternativ ist aber auch möglich, den ganzen Pfad unter Anführungszeichen zu setzen.
cd /media/Fotos\ Hawaii
cd "/media/Fotos Hawaii"
Dies gilt gleichermaßen auch für die anderen aus Sicht der Shell besonderen Zeichen, wie Tabulator, Zeilenschaltung, den Doppelpunkt : und Klammern ([{ usw.