Connect with us

Wie man

So verwenden Sie pushd und popd unter Linux

So verwenden Sie Curl zum Herunterladen von Dateien über die Linux-Befehlszeile

Fatmawati Achmad Zaenuri/Shutterstock

Viele Linux-Leute haben noch nie davon gehört pushd und popd, aber sie sind schon ewig da. Sie können auch das Navigieren in Verzeichnissen auf der Befehlszeile erheblich beschleunigen. Wir zeigen Ihnen, wie Sie sie verwenden.

Was sind pushd und popd?

Eine der Neuerungen Bill Joy eingearbeitet in seine 1978 C-Schale war das Konzept eines Verzeichnisstapels und die Mittel, ihn zu manipulieren: pushd und popd. Nachahmung ist die aufrichtigste Form der Schmeichelei, der Verzeichnisstapel, pushd, und popd wurden bald in andere Shells (wie Bash) und sogar andere Betriebssysteme integriert.

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

Tatsächlich, pushd und popd sind 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 steht für „Verzeichnis“. Mit diesen Befehlen können Sie Verzeichnisse auf den Verzeichnisstapel verschieben oder daraus entfernen.

Aber was nützt uns das?

Wie pushd den Stack auffüllt

Wenn Sie verwenden pushd, passieren die folgenden drei Dinge:

  • Sie ändern das Verzeichnis genauso, als ob Sie es verwendet hätten cd.
  • Name und Pfad des Verzeichnisses werden dem Stack hinzugefügt.
  • Der Stack wird als durch Leerzeichen getrennte Verzeichnisliste angezeigt.

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

Nach dem ersten pushd Befehl gibt es zwei Einträge im Stack: das Verzeichnis, das Sie verlassen haben, und das Verzeichnis, in das Sie verschoben haben.

Für unser Beispiel geben wir Folgendes ein:

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

Das Letzte pushd Befehl brachte uns zurück in unser Home-Verzeichnis, also sind der erste und letzte Eintrag im Stack die Tilde (~), die unser Home-Verzeichnis darstellt. Dies zeigt, dass, obwohl ein Verzeichnis bereits im Stack ist, es für andere wieder hinzugefügt wird pushd Befehle.

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

Das dirs-Kommando

Du kannst den … benutzen dirs Befehl, wie unten gezeigt, um den Verzeichnisstapel anzuzeigen:

dirs

Es wirkt sich nicht auf den Stack aus, es wird nur angezeigt. Einige der Optionen, die Sie mit verwenden können pushd beziehen sich auf die Position der Verzeichnisse im Stack.

Wenn Sie die numerische Position jedes Verzeichnisses sehen möchten, können Sie die -v (vertikale) Option wie unten gezeigt:

dirs -v

Wenn Sie statt der Tilde (~), Ergänzen Sie die -l (langes Format) Option, wie folgt:

dirs -v -l

Hinzufügen eines Verzeichnisses zum Stapel

Wie wir gesehen haben, verwenden Sie die pushd Befehl, es macht drei Dinge: ändert Ihr Verzeichnis, fügt das neue Verzeichnis dem Stack hinzu und zeigt den Stack für Sie an. Du kannst den … benutzen -n (keine Rotation) Option zum Hinzufügen eines Verzeichnisses zum Stack, ohne das aktuelle Verzeichnis zu ändern.

Hier ist unser Verzeichnis-Stack:

dirs -v -l

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

Wir geben folgendes ein:

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

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

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

Verzeichnis durch Drehen des Stapels ändern

Sie können numerische Parameter mit . verwenden pushd um in ein beliebiges Verzeichnis in einem Stack zu wechseln, und der Stack dreht sich dabei. Das zu verschiebende Verzeichnis wird dann zum ersten Eintrag im Stapel.

Sie verweisen auf die Verzeichnisse im Stack durch ihre Positionsnummer. Sie können von oben oder unten im Stapel zählen. Bei positiven 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

Die Verzeichnisse im Stapel oberhalb des von uns ausgewählten Verzeichnisses werden an das untere Ende des Stapels verschoben. Unser gewähltes Verzeichnis nimmt nun die oberste Position ein und wir werden in dieses Verzeichnis verschoben.

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

pushd -0

Das letzte Verzeichnis wird in den ersten Slot verschoben und alle anderen werden im Stack nach unten verschoben. Wir sind umgezogen in die ~/Pictures Verzeichnis.

Der popd-Befehl

Du kannst den … benutzen popd Befehl, um Verzeichnisse vom Stack zu entfernen.

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

dirs -v -l
popd +1

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

So wie wir es können mit pushd, wir können von unten im Stapel zählen mit popd. Um das letzte Verzeichnis vom Stack zu entfernen, geben wir Folgendes ein:

popd -0

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

Um das Verzeichnis zu ändern, tun Sie etwas und springen Sie dann zum vorherigen Verzeichnis zurück pushd und popd zusammen.

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

Wir geben folgendes ein:

pushd ~
popd

Wir begannen in der ~/Projects Verzeichnis, pushd in das Home-Verzeichnis und dann popd zurück zum ~/Projects Verzeichnis.

Rotieren durch den gesamten Stapel

Wir zeigen Ihnen, wie Sie mit einigen verschachtelten Verzeichnissen durch einen Stack rotieren, aber Sie können beliebige Verzeichnisse überall im Dateisystem verwenden.

Unsere tiefste Verschachtelungsebene ist:

/home/dave/Projects/htg/articles

Vom Home-Verzeichnis aus gehen wir schrittweise durch jedes Verzeichnis, 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

Wenn Sie wiederholt ausgeben pushd +1 Befehle können Sie den Stapel der Verzeichnisse durchgehen. Wenn Sie dies häufig tun, pushd +1 wäre ein guter Kandidat für einen Alias.

Geben Sie Folgendes ein:

pushd +1

Über den Stapel stempeln

Es ist einfach, zu alten Gewohnheiten zurückzukehren und zu verwenden cd Verzeichnis zu wechseln. Wenn Sie dies tun, überschreiben Sie das erste Verzeichnis im Stapel. Dies ist unvermeidlich, da der erste Slot 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

Nachdem Sie sich daran gewöhnt haben, pushd und popd Befehle (und verwenden Sie sie vielleicht, um ein paar Aliase zu erstellen), haben Sie eine superschnelle Möglichkeit, zwischen Verzeichnissen zu wechseln.

Deshalb hängen wir in der Kommandozeile herum. Effizienz rockt, oder?

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia