staging.inyokaproject.org

Von „Shell/cd“ weitergeleitet.

cd

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png 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).

Syntax

Die allgemeine Syntax ist [1]:

cd [OPTION] VERZEICHNIS 

Optionen

Bei den meisten Shells kennt cd mindestens die folgenden beiden Optionen:

OptionBeschreibung
-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.

Gebrauch der Option -P

Wenn das gewünschte Ziel ein symbolischer Link auf ein reales/physisches Verzeichnis ist unterscheidet sich die Arbeitsweise von cd je nach Angabe der Option -L oder -P. Nach einem erfolgreichen Wechsel in das neue Arbeitsverzeichnis wird mit der Option

  • -L (bzw. keiner Angabe) stets das angegebene Zielverzeichnis,

  • aber mit -P stets das aufgelöste Ziel des Links

als aktuelles Arbeitsverzeichnis angezeigt.

Beispielsweise ist /bin ein symbolischer Link:

user@hostname:~$ file /bin 
/bin: symbolic link to usr/bin
user@hostname:~$ cd -L /bin
user@hostname:/bin$  

aber

user@hostname:~$ cd -P /bin
user@hostname:/usr/bin$  

Dies gilt auch für die Ausgabe des Befehls pwd und den Wert der Variablen PWD.

Diese Revision wurde am 3. Februar 2022 12:29 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell