Das cd Kommando – bash Tutorial Teil 22

Wer sagt: „Mit cd wechselt man von einem Verzeichnis ins andere!“, liegt damit zwar richtig, es ist aber nur die halbe Wahrheit, denn das Kommando kann deutlich mehr.

Dr. Dirk Colbry, Michigan State
Gnu-bash-logoCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License . loading=
1Einführung
2Der bash Prompt
3key bindings
4Der Startvorgang
5Environment Variablen
6builtin commands
7Arbeiten mit Dateien
8nano
9bash Scripting
10Variablen
11Verzweigungen (if)
12Schleifen
13Kommandozeilenparameter
14exit Codes bash Tutorial Teil 14
15von der Idee zum Script
16grep
17Piping und Redirection
18tee
19alias
20Der Shebang
21Das sed Kommando
22cd Kommando

cd

cd steht tatsächlich kurz für „change directory“ und ist wichtig, deine Daten in einer sinnvollen Verzeichnisstruktur abzulegen.

Es ist ein builtin Kommando der bash und auch in allen anderen Shells vorhanden, mit denen ich jemals gearbeitet habe.

Vorbereitung

Für diesen Tutorialteil lege ich mir erstmal ein paar Verzeichnisse zur Demonstration an

mkdir -p ebene0/ebene1/ebene2/ebene3

Damit habe ich jetzt innerhalb von teil22 eine kleine, verschachtelte Verzeichnisstruktur.

Verzeichnisstruktur mit tree aufgelistet
Verzeichnisstruktur mit tree aufgelistet

Verzeichnis wechseln

Das was jeder kennt und kennen muss, ist, wie man von einem Verzeichnis zum anderen wechselt.

Zunächst wechseln wir nach ebene0 mit

cd ebene0

Mit pwd (print working directory) kannst du dir jederzeit den aktuellen Pfad ausgeben lassen.

Das aktuelle Verzeichnis ist jetzt ebene0
Das aktuelle Verzeichnis ist jetzt ebene0

übergeordnetes Verzeichnis

Das Linux Dateisystem hat in jedem Unterverzeichnis implizit zwei spezielle Einträge im Dateibaum, nämlich . und .. Der einfache Punkt steht für das aktuelle Verzeichnis, der zweifache für das übergeordnete. Mit cd . würdest du also ins aktuelle Verzeichnis wechseln, was nur selten Sinn macht.

Mit

cd ..

wechseln wir wieder in die Hauptebene, bei mir teil22.

ach cd .. ist teil22 wieder das Arbeitsverzeichnis.
Nach cd .. ist teil22 wieder das Arbeitsverzeichnis.

Vorgängerverzeichnis

Das übergeordnete Verzeichnis ist nicht unbedingt das Vorgängerverzeichnis. Wir stehen jetzt in teil22 und wechseln mit

cd ebene0/ebene1/ebene2

nach ebene2. Wenn du jetzt cd .. eingeben würdest, landest du in ebene1, da das das übergeordnete Verzeichnis ist. Du müsstest dies noch zweimal wiederholen, um wieder in teil22 anzukommen, Dies geht aber mit

cd -

sehr viel komfortabler. Damit kommst du direkt wieder in das Verzeichnis, in dem du vor dem letzten cd gestanden hast.

Wechseln von ebene2 zurück ins Vorgängerverzeichnis mit cd -
Wechseln von ebene2 zurück ins Vorgängerverzeichnis mit cd –

Sprung ins Homeverzeichnis

Es kommt nicht selten vor, dass du nach getaner Arbeit in einem Unterverzeichnis wieder zurück in dein Homeverzeichnis springen willst. Dazu benutzt du cd einfach ohne Parameter.

cd ebene0/ebene1/ebene2/ebene3
cd
Sprung nach ebene3 und mit cd zurück ins Homeverzeichnis.
Sprung nach ebene3 und mit cd zurück ins Homeverzeichnis.

Da das Homeverzeichnis in ${HOME} definiert ist, ist cd synonym zu cd ${HOME}, allerdings ist der Tippaufwand deutlich geringer.

${CDPATH}

Die Variable ${CDPATH} ist ein Feature der bash, dass meiner Beobachtung nach nur wenige benutzen, da es nur selten erwähnt wird.

Analog zu ${PATH} kannst du in ${CDPATH} Suchpfade für cd definieren. Anders ausgedrückt, gibst bei cd einen Namen an, der nicht im aktuellen Verzeichnis liegt, sucht cd innerhalb der Pfade, die in ${CDPATH} definiert sind, ob er dort zu finden ist. Das wird mit einem Beispiel wohl klarer.

Ich mache erstmal ebene3 zum Arbeitsverzeichnis. Dieses ist völlig leer. Dann setze ich die CDPATH Variable

cd ebene0/ebene1/ebene2/ebene3
export CDPATH=~/git:/etc

Jetzt kommt der Clou, mit

cd pythonkurs

Lande ich im Verzeichnis des Pythontutorials, obwohl es im aktuellen Verzeichnis nicht zu finden ist, weil cd die Verzeichnisse in ${CDPATH} durchsucht.

CDPATH macht die Arbeit leichter.
CDPATH macht die Arbeit leichter.

Schreibe einen Kommentar

Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Olli Graf - raspithek.de
WordPress Cookie Hinweis von Real Cookie Banner