So verwenden Sie pushd und popd unter Linux

Inhalt

Ein Terminalfenster auf einem Linux-Desktop im Ubuntu-Stil.

Viele Linux-Leute haben noch nie davon gehört pushd und popd, aber sie sind schon ewig da. Sie können auch die Verzeichnisnavigation über die Befehlszeile erheblich beschleunigen.. Wir zeigen Ihnen, wie Sie sie verwenden.

Was sind Push und Popd?

Eine der Neuerungen Bill Joy eingebaut in deine 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 bald wurden sie in andere Schalen eingearbeitet (wie bash) und sogar auf andere Betriebssysteme.

Das Konzept des Stapels ist einfach. Gegenstände werden gleichzeitig auf den Stapel gelegt, und das zuletzt hinzugefügte Element nimmt immer die oberste Position ein. Wenn Elemente aus dem Stapel entnommen werden, werden eliminiert, eine Bestellung, von oben nach unten. Stapel dieser Art werden oft als Zuletzt rein, zuerst raus (LIFO) colas.

Wirklich, pushd und popd da sind sie etwas flexibler, Aber das ist ein gutes Modell, auf das man jetzt achten sollte.

Wie wir uns auf einen Verzeichnisstapel beziehen, Es ist wahrscheinlich nicht verwunderlich, dass die “D” An pushd und popd es bedeutet “Verzeichnis”. Mit diesen Befehlen können Sie Verzeichnisse einfügen oder aus dem Verzeichnisstapel entfernen.

Aber, Was nützt uns das?

Wie pushd den Stack füllt

Wenn Sie verwenden pushd, die folgenden drei Dinge passieren:

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

In den folgenden Beispielen, Beobachten Sie, wie der Verzeichnisstapel mit jedem neuen wächst pushd Befehl. Beachten Sie auch, dass sich die Spitze des Stapels auf der linken Seite befindet; hier erscheinen die neuen Einträge.

Nach dem ersten pushd Befehl, es gibt zwei Einträge im Stack: das Verzeichnis, das du verlassen hast und das, das verschoben wurde.

Für unser Beispiel, wir schreiben folgendes:

gedrückt ~/Desktop
gedrückt ~/Musik
gedrückt ~/Dokumente
gedrückt ~/Bilder
gedrückt ~

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

Beachten Sie auch, dass der Eintrag ganz links im Stapel, das ist der zuletzt hinzugefügte Eintrag, ist dein aktuelles Verzeichnis.

Der dirs-Befehl

Du kannst den ... benutzen dirs Befehl, wie im Folgenden gezeigt, um den Verzeichnisstapel anzuzeigen:

dirs

Beeinflusst den Stapel nicht, nur die probe. Einige der Alternativen, die Sie mit verwenden können pushd Überprüfen Sie die Position der Verzeichnisse auf dem Stack.

Wenn Sie die numerische Position jedes Verzeichnisses sehen möchten, du kannst den ... benutzen -v (vertikal) wie im Folgenden gezeigt:

dirs -v

Wenn Sie lieber den geschriebenen Pfad zu Ihrem Home-Verzeichnis anstelle der Tilde sehen möchten (~), Ergänzen Sie die -l (langes Format) Möglichkeit, So:

dirs -v -l

Fügen Sie dem Stack ein Verzeichnis hinzu

Wie wir gesehen haben, wenn du das verwendest pushd Befehl, macht drei dinge: ändere dein Verzeichnis, füge das neue Verzeichnis zum Stack hinzu und zeige den Stack für dich. Du kannst den ... benutzen -n (keine Drehung) um ein Verzeichnis zum Stack hinzuzufügen, ohne das aktuelle Verzeichnis zu ändern.

Hier ist unser Verzeichnis-Stack:

dirs -v -l

Jetzt, wir werden die benutzen pushd Befehl mit der Option -n und pas in the /home/dave Verzeichnis als Parameter. Nach, wir werden den Verzeichnisstack noch einmal überprüfen.

Wir schreiben folgendes:

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

das /home/dave Das Verzeichnis wurde dem Stack im Slot hinzugefügt 1, das ist der zweite platz im stapel. Es kann sich nicht an der obersten Position befinden, da Slot Null immer das aktuelle Verzeichnis ist.

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

Verzeichniswechsel durch Rotation des Stapels

Sie können numerische Parameter mit . verwenden pushd in ein beliebiges Verzeichnis auf einem Stack verschieben, und der Stapel dreht sich, wenn er es tut. Das zu verschiebende Verzeichnis wird zum ersten Eintrag auf dem Stapel.

Bezieht sich auf Verzeichnisse auf dem Stack durch ihre Positionsnummer. Kann von oben oder unten im Stapel zählen. Für positive Zahlen, Was +3, von oben zählen; für negative Zahlen, Was -2, herunterzählen.

Verzeichnis / Heimat / dave / Dokumente ist an Position drei. Wir können den folgenden Befehl verwenden, um dieses Verzeichnis zu verschieben:

geschoben +3

Die Verzeichnisse auf dem Stapel über dem von uns gewählten Verzeichnis werden an das Ende des Stapels verschoben. Unser gewähltes Verzeichnis nimmt nun die erste Position ein und wir wechseln in dieses Verzeichnis.

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

geschoben -0

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

Der popd-Befehl

Du kannst den ... benutzen popd Befehl zum Entfernen von Verzeichnissen vom Stack.

Wenn wir uns den Verzeichnisstapel ansehen, Wir können sehen, dass das Verzeichnis an Position 1 es ist /home/dave. Um dies vom Stapel zu löschen, wir schreiben folgendes um die Zahl an . weiterzugeben popd:

dirs -v -l
popd +1

das /home/dave Verzeichnis wurde entfernt, und diejenigen, die unter ihm im Stapel waren, sind um einen Platz nach oben gerückt.

Auf die gleiche Weise können wir mit pushd, wir können von unten im Stapel zählen mit popd. Um das letzte Verzeichnis auf dem Stack zu löschen, wir schrieben:

popd -0

das ~/Music Das Verzeichnis wird von der letzten Position auf dem Stapel entfernt.

So ändern Sie das Verzeichnis, etwas tun und dann zum vorherigen Verzeichnis zurückkehren, du kannst verwenden pushd und popd zusammen.

wir werden verwenden pushd in ein anderes Verzeichnis wechseln. wir werden verwenden popd um das oberste Verzeichnis auf dem Stapel abzulegen und zum Verzeichnis an der zweiten Position zu wechseln. Dies ist das Verzeichnis, aus dem Sie gerade gekommen sind, Sie kehren also zu dem Verzeichnis zurück, in dem Sie sich ursprünglich befanden.

Wir schreiben folgendes:

gedrückt ~
popd

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

Spin durch den ganzen Stapel

Wir werden veranschaulichen, wie man durch einen Stack mit einigen verschachtelten Verzeichnissen rotiert, aber Sie können jedes beliebige Verzeichnis überall im Dateisystem verwenden.

Unsere tiefste Verschachtelungsebene ist:

/home/dave/Projekte/htg/artikel

Aus dem Home-Verzeichnis, wir werden schrittweise durch jedes Verzeichnis absteigen, bis wir das Posts-Verzeichnis erreichen. Nach, wir werden den Verzeichnisstapel sehen.

Wir schreiben folgendes:

gedrückt ~/Projekte
gedrückt htg
gepushte Artikel
dirs -v -l

Wenn es wiederholt sendet pushd +1 Befehle, kann den Verzeichnisstapel immer wieder durchlaufen. Wenn du das oft machst, pushd +1 wäre ein guter Kandidat für einen Alias.

Schreib das Folgende:

geschoben +1

VERBUNDEN: So erstellen Sie Aliase und Shell-Funktionen in Linux

Auf dem Stapel gestempelt

Es ist einfach, zu alten Gewohnheiten zurückzukehren und zu verwenden cd Verzeichnis wechseln. Wenn es das tut, versiegelt das erste Verzeichnis auf dem Stack. Das ist unvermeidlich, da der erste Platz für das aktuelle Arbeitsverzeichnis reserviert ist; keiner der anderen ändert seine Position.

Um dies zu tun, schreib das Folgende:

dirs -v -l
cd ~/Musik
dirs -v -l


Nachdem Sie sich daran gewöhnt haben, pushd und popd Befehle (und, kann sein, Verwenden Sie sie, um Aliase zu erstellen), Sie haben eine superschnelle Möglichkeit, zwischen Verzeichnissen zu springen.

Deshalb bleiben wir auf der Kommandozeile. Effizienz rockt, Wahrheit?

VERBUNDEN: 37 Wichtige Linux-Befehle, die Sie kennen sollten

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.