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

Fatmawati Achmad Zaenuri/Shutterstock

Viele Linux-Leute haben noch nie von |_+_| . gehört und |_+_|, aber sie gibt es schon ewig. 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: |_+_| und |_+_|. Nachahmung ist die aufrichtigste Form der Schmeichelei, der Verzeichnisstapel |_+_| und |_+_| 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 Gegenstände 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) Schwänze.

Eigentlich |_+_| und |_+_| sind etwas flexibler, 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 |_+_| und |_+_| 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, passieren die folgenden drei Dinge:

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

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

Anzeige

Nach dem ersten |_+_| 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 popd pushd popd pushd

Die letzten |_+_| Befehl brachte uns zurück zu unserem Home-Verzeichnis, also sind der erste und letzte Eintrag im Stack die Tilde (|_+_|), die unser Home-Verzeichnis repräsentiert. Dies zeigt, dass, obwohl ein Verzeichnis bereits im Stack ist, es für andere |_+_| . wieder hinzugefügt wird Befehle.

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

Das dirs-Kommando

Sie können die |_+_| Befehl, wie unten gezeigt, um den Verzeichnisstapel anzuzeigen:

Wie kann man die Steam-Aktivität ausblenden?
popd

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

Anzeige

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

dirs -v

Wenn Sie statt der Tilde (|_+_|) lieber den ausgeschriebenen Pfad zu Ihrem Home-Verzeichnis sehen möchten, fügen Sie |_+_| . hinzu (langes Format) Option, wie folgt:

pushd

braucht iphone virenschutz

Hinzufügen eines Verzeichnisses zum Stapel

Wie wir gesehen haben, verwenden Sie |_+_| Befehl, es macht drei Dinge: ändert Ihr Verzeichnis, fügt das neue Verzeichnis dem Stack hinzu und zeigt den Stack für Sie an. Sie können die |_+_| (keine Rotation) Option zum Hinzufügen eines Verzeichnisses zum Stack, ohne das aktuelle Verzeichnis zu ändern.

Hier ist unser Verzeichnis-Stack:

popd

Jetzt verwenden wir das |_+_| Befehl mit der Option -n und pas in |_+_| Verzeichnis als Parameter. Dann überprüfen wir den Verzeichnisstapel erneut.

Wir geben folgendes ein:

pushd popd

Die |_+_| 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, also wurde es nicht an eine andere Position im Stapel gedreht.

Verzeichnis durch Drehen des Stapels ändern

Sie können numerische Parameter mit |_+_| . verwenden 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.

Anzeige

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

Die Verzeichnisse im Stapel über dem von uns ausgewählten Verzeichnis 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:

cd

Das letzte Verzeichnis wird in den ersten Slot verschoben und alle anderen werden im Stack nach unten verschoben. Wir sind umgestellt auf |_+_| Verzeichnis.

Der popd-Befehl

Sie können die |_+_| Befehl zum Entfernen von Verzeichnissen vom Stack.

Anzeige

Wenn wir uns den Verzeichnisstapel ansehen, sehen wir, dass das Verzeichnis an Position 1 |_+_| ist. Um dies vom Stapel zu entfernen, geben wir Folgendes ein, um die Zahl an |_+_| zu übergeben:

pushd pushd

Die |_+_| Verzeichnis wurde entfernt, und diejenigen, die sich im Stack darunter befanden, sind jeweils um eine Stelle nach oben gerückt.

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

Windows 10 Desktop-Hintergrund-Speicherort
pushd

Die |_+_| Verzeichnis wird von der letzten Position im Stack entfernt.

Um das Verzeichnis zu ändern, etwas tun und dann zum vorherigen Verzeichnis zurückkehren, können Sie |_+_| . verwenden und |_+_| zusammen.

Anzeige

Wir verwenden |_+_| um in ein anderes Verzeichnis zu wechseln. Wir verwenden |_+_| um das oberste Verzeichnis im Stapel 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

Wir begannen im |_+_| Verzeichnis, |_+_| zum Home-Verzeichnis und dann |_+_| zurück zum |_+_| Verzeichnis.

Rotieren durch den gesamten Stapel

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

Unsere tiefste Verschachtelungsebene ist:

dirs

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 -v ~ -l

Wenn Sie wiederholt |_+_| . ausgeben Befehle können Sie durch den Stapel der Verzeichnisse kreisen. Wenn Sie dies häufig tun, |_+_| wäre ein guter Kandidat für eine alias .

Geben Sie Folgendes ein:

pushd

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

Über den Stapel stempeln

Es ist einfach, zu alten Gewohnheiten zurückzukehren und |_+_| . zu verwenden 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 die Position.

Geben Sie dazu Folgendes ein:

Fax senden ohne faxgerät
-n pushd /home/dave


Nachdem Sie sich an |_+_| . gewöhnt haben und |_+_| 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 herum die Befehlszeile . Effizienz rockt, oder?

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

Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · Griff · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · Zustand · ls · fstab · rauswerfen · weniger · chgrp · chown · rev · suchen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · SRM
Prozesse alias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · beim · Charge · kostenlos · die · dmesg · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · ja · töten · Schlaf · sudo · seine · Zeit · groupadd · Benutzermod · Gruppen · lshw · stilllegen · neu starten · halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · Locken · wget · Wer · Wer bin ich · In · iptables · ssh-keygen · ufw

VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten

WEITER LESEN