Viele Linux-Leute haben noch nie von Pushd und Popd gehört, aber sie sind schon immer da. Sie können auch das Navigieren in Verzeichnissen in der Befehlszeile erheblich beschleunigen. Wir zeigen Ihnen, wie Sie sie verwenden.

Was sind Pushd und Popd?

Eine der Innovationen Bill Joy aufgenommen in seinem 1978 C Shell war das Konzept eines Verzeichnisstapels und das Mittel, um ihn zu manipulieren: pushd und popd. Nachahmung war die aufrichtigste Form der Schmeichelei. Der Verzeichnisstapel, Pushd und Popd wurden bald in andere Shells (wie Bash) und sogar in andere Betriebssysteme integriert.

Das Konzept des Stapels ist einfach. Die Gegenstände werden einzeln auf den Stapel gelegt, wobei der zuletzt hinzugefügte Gegenstand immer die oberste Position einnimmt. Wenn Gegenstände vom Stapel abgerufen werden, werden sie der Reihe nach von oben nach unten entfernt. Stapel dieser Art werden oft als bezeichnet Zuletzt rein, zuerst raus (LIFO) Warteschlangen.

Eigentlich sind pushd und popd etwas flexibler als dieses, aber dies ist ein gutes Modell, das man sich vorerst merken sollte.

Da wir uns auf einen Verzeichnisstapel beziehen, ist es wahrscheinlich keine Überraschung, dass das „d“ in pushd und popd für „Verzeichnis“ steht. Mit diesen Befehlen können Sie Verzeichnisse auf den Verzeichnisstapel verschieben oder aus diesem entfernen.

Aber wie kommt uns das zugute?

Wie pushd den Stapel füllt

Wenn Sie pushd verwenden, passieren die folgenden drei Dinge:

Sie ändern das Verzeichnis genauso, als hätten Sie CD verwendet.
Der Name und der Pfad des Verzeichnisses werden dem Stapel hinzugefügt.
Der Stapel wird als durch Leerzeichen getrennte Liste von Verzeichnissen angezeigt.

Beachten Sie in den folgenden Beispielen, wie der Verzeichnisstapel mit jedem neuen pushd-Befehl wächst. Beachten Sie auch, dass sich der obere Rand des Stapels links befindet. Hier werden die neuen Einträge angezeigt.

Nach dem ersten pushd-Befehl befinden sich zwei Einträge im Stapel: das Verzeichnis, das Sie verlassen haben, und das Verzeichnis, in das Sie verschoben haben.

Überprüfen Sie dies -  Zwanzig beste Windows-Tipps und Tricks von 2016

In unserem Beispiel geben wir Folgendes ein:

pushd ~/Desktop
pushd ~/Music
pushd ~/Documents
pushd ~/Pictures
pushd ~

Der letzte pushd-Befehl führte uns zurück in unser Home-Verzeichnis. Der erste und letzte Eintrag im Stapel ist also die Tilde (~), die unser Home-Verzeichnis darstellt. Dies zeigt, dass ein Verzeichnis, das sich bereits im Stapel befindet, für andere pushd-Befehle erneut hinzugefügt wird.

Beachten Sie auch, dass der Eintrag ganz links im Stapel, der zuletzt hinzugefügt wurde, Ihr aktuelles Verzeichnis ist.

Der dirs Befehl

Sie können den Befehl dirs wie unten gezeigt verwenden, um den Verzeichnisstapel anzuzeigen:

dirs

Das

Der Stapel wird nicht beeinflusst, sondern nur angezeigt. Einige der Optionen, die Sie mit pushd verwenden können, beziehen sich auf die Position der Verzeichnisse im Stapel.

Wenn Sie die numerische Position jedes Verzeichnisses anzeigen möchten, können Sie die Option -v (vertikal) wie folgt verwenden:

dirs -v

Das

Wenn Sie lieber den buchstabierten Pfad zu Ihrem Home-Verzeichnis anstelle der Tilde (~) sehen möchten, fügen Sie die Option -l (Langformat) wie folgt hinzu:

dirs -v -l

Das

Hinzufügen eines Verzeichnisses zum Stapel

Wie wir gesehen haben, führt der Befehl pushd drei Dinge aus: Ändert Ihr Verzeichnis, fügt das neue Verzeichnis zum Stapel hinzu und zeigt den Stapel für Sie an. Mit der Option -n (keine Drehung) können Sie dem Stapel ein Verzeichnis hinzufügen, ohne das aktuelle Verzeichnis zu ändern.

Hier ist unser Verzeichnisstapel:

dirs -v -l

Das

Jetzt verwenden wir den Befehl pushd mit der Option -n und pas im Verzeichnis / home / dave als Parameter. Dann überprüfen wir den Verzeichnisstapel erneut.

Wir geben Folgendes ein:

pushd -n /home/dave
dirs -v -l

Das

Das Verzeichnis / home / dave wurde dem Stapel in Steckplatz 1 hinzugefügt. Dies ist der zweite Platz im Stapel. Es kann nicht die oberste Position einnehmen, da Steckplatz Null immer das aktuelle Verzeichnis ist.

Wir haben das aktuelle Verzeichnis ~ / Videos nicht verlassen, sodass es nicht an eine andere Position im Stapel gedreht wurde.

Überprüfen Sie dies -  Was sind Hardwaretreiber und warum verursachen sie so viele Probleme?

Ändern des Verzeichnisses durch Drehen des Stapels

Sie können numerische Parameter mit pushd verwenden, um in ein beliebiges Verzeichnis in einem Stapel zu wechseln. Der Stapel wird dabei gedreht. Das Verzeichnis, das Sie verschieben möchten, wird dann zum ersten Eintrag im Stapel.

Sie verweisen auf die Verzeichnisse im Stapel anhand ihrer Positionsnummer. Sie können von oben oder unten im Stapel zählen. Für positive Zahlen wie +3 zählen Sie von oben; Für negative Zahlen wie -2 zählen Sie von unten.

Das Verzeichnis / home / dave / Documents befindet sich an Position drei. Wir können den folgenden Befehl verwenden, um dieses Verzeichnis zu verschieben:

pushd +3

Das

Die Verzeichnisse im Stapel über dem von uns ausgewählten Verzeichnis werden an den unteren Rand des Stapels verschoben. Unser ausgewähltes Verzeichnis nimmt jetzt die oberste Position ein und wir werden in dieses Verzeichnis verschoben.

Wenn wir in das Verzeichnis am unteren Rand des Stapels wechseln möchten, können wir den folgenden Befehl verwenden:

pushd -0

Das

Das letzte Verzeichnis wird in den ersten Steckplatz verschoben, und alle anderen werden im Stapel nach unten verschoben. Wir wurden in das Verzeichnis ~ / Pictures geändert.

Der popd-Befehl

Mit dem Befehl popd können Sie Verzeichnisse vom Stapel entfernen.

Wenn wir uns den Verzeichnisstapel ansehen, können wir sehen, dass das Verzeichnis an Position 1 / home / dave ist. Um dies vom Stapel zu entfernen, geben wir Folgendes ein, um die Nummer an popd zu übergeben:

dirs -v -l
popd +1

Das

Das Verzeichnis / home / dave wurde entfernt, und diejenigen, die sich im Stapel darunter befanden, sind jeweils um eine Stelle nach oben verschoben worden.

Genau wie wir es mit pushd können, können wir mit popd vom unteren Ende des Stapels zählen. Um das letzte Verzeichnis vom Stapel zu entfernen, geben wir Folgendes ein:

popd -0

Das

Das Verzeichnis ~ / Music wird von der letzten Position im Stapel entfernt.

Überprüfen Sie dies -  Wie man Fallout 76 unter Linux spielt

Um das Verzeichnis zu ändern, etwas zu tun und dann zum vorherigen Verzeichnis zurückzukehren, können Sie pushd und popd zusammen verwenden.

Wir werden pushd verwenden, um in ein anderes Verzeichnis zu wechseln. Wir werden popd verwenden, um das oberste Verzeichnis im Stapel zu verwerfen und in das Verzeichnis an der zweiten Position zu wechseln. Dies ist das Verzeichnis, aus dem Sie gerade ausgezogen sind, sodass Sie wieder in das Verzeichnis zurückkehren, in dem Sie sich ursprünglich befanden.

Wir geben Folgendes ein:

pushd ~
popd

Das

Wir haben im Verzeichnis ~ / Projects begonnen, in das Ausgangsverzeichnis verschoben und dann wieder in das Verzeichnis ~ / Projects eingefügt.

Durch den gesamten Stapel drehen

Wir werden veranschaulichen, wie ein Stapel mit einigen verschachtelten Verzeichnissen durchlaufen wird. Sie können jedoch beliebige Verzeichnisse an einer beliebigen Stelle im Dateisystem verwenden.

Unsere tiefste Verschachtelungsebene ist:

/home/dave/Projects/htg/articles

Vom Ausgangsverzeichnis aus werden wir schrittweise durch jedes Verzeichnis absteigen, bis wir das Artikelverzeichnis erreichen. Dann schauen wir uns den Verzeichnisstapel an.

Wir geben Folgendes ein:

pushd ~/Projects
pushd htg
pushd articles
dirs -v -l

Das

Wenn Sie wiederholt pushd +1-Befehle ausgeben, können Sie den Verzeichnisstapel durchlaufen. Wenn Sie dies häufig tun, ist pushd +1 ein guter Kandidat für einen Alias.

Geben Sie Folgendes ein:

pushd +1

Das

Über den Stapel stempeln

Es ist einfach, zu alten Gewohnheiten zurückzukehren und mit cd das Verzeichnis zu wechseln. Wenn Sie dies tun, stempeln Sie über das erste Verzeichnis im Stapel. Dies ist unvermeidlich, da der erste Steckplatz für das aktuelle Arbeitsverzeichnis reserviert ist – keiner der anderen ändert seine Position.

Geben Sie dazu Folgendes ein:

dirs -v -l
cd ~/Music
dirs -v -l

Das

Nachdem Sie sich an die Befehle pushd und popd gewöhnt haben (und sie möglicherweise zum Erstellen einiger Aliase verwenden), haben Sie eine superschnelle Möglichkeit, zwischen Verzeichnissen zu wechseln.

Deshalb bleiben wir in der Kommandozeile. Effizienz rockt, richtig?