Bash Change Directory (cd) Methoden, Tipps und Tricks
Das Wechseln von Verzeichnissen in einem Terminal gehört für Mainstream-Benutzer möglicherweise der Vergangenheit an. Wenn Sie jedoch auf irgendeiner Ebene Systemadministrationsarbeiten, Testarbeiten, Big-Data-Manipulation oder Ähnliches durchführen, werden Sie bald feststellen, dass Sie den Befehl Change Directory (cd) an der Eingabeaufforderung des Bash- oder Linux-Terminals immer häufiger verwenden.
In diesem Tutorial lernen Sie:
- Einfache Verwendung des Befehls "Change Directory" (
CD) des Terminals - Zusätzliche Methoden, Tipps und Tricks für ein reichhaltigeres
CD-Erlebnis - Beispiele für die Verwendung der verschiedenen
cd-Befehle
Bash Change Directory (cd) Methoden, Tipps und Tricks
Verwendete Softwareanforderungen und Konventionen
Ein einfaches Änderungsverzeichnis
Zuerst erstellen wir zwei Verzeichnisse mit den Namen
aund b mit dem Befehlmkdir:mkdir a mkdir bAls nächstes führen wir ein paar einfache Change Directory (
cd)-Befehle aus:cd a pwd | sed 's|.*/||' a cd ../b pwd | sed 's|.*/||' bWechsel zurück in das vorherige Verzeichnis
Mit dem gleichen Setup wie oben, beginnend in dem Verzeichnis, das die Unterordner
aundbenthält, können wir folgendes tun:cd a pwd | sed 's|.*/||' a cd ../b pwd | sed 's|.*/||' b cd - /home/roel/a pwd | sed 's|.*/||' aWechsel in das Home-Verzeichnis
Es gibt zwei Methoden, um zurück zu unserem persönlichen Home-Verzeichnis zu wechseln. Die erste besteht darin,
einfach cdauszugeben, ohne einen Pfad anzugeben. Mal sehen, wie das funktioniert:cd a pwd /home/roel/a cd pwd /home/roelHier haben wir in das Verzeichnis ./a gewechselt, indem wir wieder den Befehl
cd averwendet haben. Danach überprüften wir das Verzeichnis, in dem wir uns befanden, und bestätigten, dass wir uns im Unterverzeichnis./ain unserem Home-Verzeichnis befanden. Schließlich geben wir den Befehlcdohne Optionen aus und überprüfen erneut unser Path Working Directory (pwd), das korrekt anzeigt, dass wir uns wieder im Home-Verzeichnis/home/roelbefinden.Die zweite Methode ist ähnlich. Wir können
~verwenden, um auf unser Home-Verzeichnis zu verweisen:cd ~/a pwd /home/roel/a cd ~ pwd /home/roelHier sind wir mit dem Befehl
cd ~/ain das Verzeichnis/home/roel/agewechselt, der die Tastenkombination my-home-directory~verwendet. Anschließend haben wir das Verzeichnis wieder auf/home/roelumgestellt, indem wir nurdas ~verwendet haben. Dies zeigt zwei Methoden, um schnell entweder zum Homedir oder zu einem Verzeichnis darunter... oder darüber... zu navigieren. Schauen wir uns die __above__ etwas genauer an:cd ~ pwd /home/roel cd ~/../roel/a pwd /home/roel/aMit .. und .
Bash ist sehr flexibel, wenn es um die Angabe von Pfadnamen geht:
pwd /home/roel cd ~/../../home/../home/./roel///a pwd /home/roel/aHier beginnen wir im Home-Verzeichnis
/home/roelund geben als nächstes einen Befehl aus, der niemals parsen würde. Aber die Bash-Shell kümmert sich um alles. Die hier bereitgestellte lange Anleitung ähnelt der separaten Vorgehensweise:pwd /home/roel cd ~; cd ..; cd ..; cd home; cd ..; cd home; cd .; cd roel/aa pwd /home/roel/aDie meisten davon werden nun selbsterklärend sein. Es gibt jedoch einige interessante neue Redewendungen (Formen der Verwendung der Bash-Sprache). Eine dieser Redewendungen ist die Verwendung von
.. Das bedeutet in Bash __current directory__ und tut im Grunde nichts. Es wird in anderen Dingen verwendet, zum Beispiel, wenn wir eine Binärdatei in Bash starten, werden wir normalerweise./some_binary tun,d.h. das aktuelle Verzeichnis als Präfix verwenden.Der zweite ist, dass wir im ursprünglichen Beispiel
roel///averwendet haben, was für Bash identisch mitroel/aist. Die Angabe mehrerer Schrägstriche wird nur in einen einzigen Schrägstrich übersetzt!
Wir haben zuerst in das a-Verzeichnis gewechselt und dann pwd (Path Working Directory, das aktuelle Verzeichnis, in dem wir uns befinden) verwendet, um das Unterverzeichnis zu sehen, in dem wir uns befinden. Wir haben auch einen einfachen regulären sed-Ausdruck verwendet, um den führenden Teil des Pfadnamens herauszufiltern. Weitere Informationen zu regulären Ausdrücken und Sets finden Sie in unseren Anleitungen [Bash Regexps für Anfänger mit Beispielen](bash-regexps-for-beginners-with-examples) und [Advanced Bash Regex with Examples](advanced-bash-regex-with-examples).
Hier haben wir wie oben in das Verzeichnis a gewechselt und dann einen relativen Pfadnamen verwendet (ein relativer Pfadname ist ein Pfadname, der für die aktuelle Position relevant ist, d.h. kein vollständiger Pfadname wie z.B. /home/roel/a. Als nächstes haben wir unseren speziellen Verzeichniswechselbefehl cd verwendet - das ist eine praktische Abkürzung, um zurück in das vorherige Verzeichnis zu wechseln, in dem wir uns befanden, in diesem Fall /home/roel/a.
Zuerst wechselten wir in das Home-Verzeichnis (wie von pwd bestätigt). Dann wechselten wir in ein relatives Verzeichnis, wobei wir zwei spezielle Methoden/Tastenkombinationen verwendeten, nämlich ~ und ... Man könnte das so lesen: Wechseln Sie das Verzeichnis in das Home-Verzeichnis (~), gehen Sie dann ein Verzeichnis hoch (..) und gehen Sie dann in das Verzeichnis, das Sie dort finden, dann in das Verzeichnis a und somit landen wir wie angewiesen in /home/roel/a.
Beide Elemente, nämlich der aktuelle Verzeichnispunkt (.) und mehrere Schrägstriche (zwei: oder mehr), sind sehr praktisch, wenn es um Skripterstellung geht, und insbesondere letzteres. Es vermeidet die Notwendigkeit, einige Variablen zu bereinigen. Wenn Sie beispielsweise einen festen Pfad aus der Wurzel (das Stammverzeichnis ist das oberste Verzeichnis in Ihrem Verzeichnisbaum und wird durch den ersten Schrägstrich / gekennzeichnet) mit einem relativen Pfad verbinden, kann das Nichtbereinigen von Variablen zu etwas wie /home/roel//a führen, das immer noch einwandfrei funktioniert.
Schlussfolgerung
In diesem Artikel haben wir verschiedene Methoden, Tipps und Verknüpfungen untersucht, die das Durchsuchen von Verzeichnissen über die Befehlszeile viel angenehmer machen. Hinterlassen Sie uns unten einen Kommentar mit Ihren besten Tricks zum Ändern des Verzeichnisses! genießen!
