pushd
und popd
sind Befehle, mit denen Sie mit dem Verzeichnisstapel arbeiten und das aktuelle Arbeitsverzeichnis in Linux und anderen Unix-ähnlichen Betriebssystemen ändern können. Obwohl pushd
und popd
sind sehr mächtige und nützliche Befehle, sie werden unterschätzt und selten verwendet.
In diesem Tutorial zeigen wir Ihnen, wie Sie den pushd
verwenden und popd
Befehle zum Navigieren im Verzeichnisbaum Ihres Systems.
Verzeichnisstapel #
Der Verzeichnisstapel ist eine Liste von Verzeichnissen, zu denen Sie zuvor navigiert sind. Der Inhalt des Verzeichnisstapels kann mit dirs
eingesehen werden Befehl. Verzeichnisse werden dem Stack hinzugefügt, wenn mit dem pushd
in ein Verzeichnis gewechselt wird Befehl und mit dem popd
entfernt Befehl.
Das aktuelle Arbeitsverzeichnis befindet sich immer ganz oben im Verzeichnisstapel. Das aktuelle Arbeitsverzeichnis ist das Verzeichnis (Ordner), in dem der Benutzer gerade arbeitet. Jedes Mal, wenn Sie mit der Befehlszeile interagieren, arbeiten Sie in einem Verzeichnis.
Das pwd
Befehl können Sie herausfinden, in welchem Verzeichnis Sie sich gerade befinden.
Verwenden Sie beim Navigieren durch das Dateisystem den Tab
-Taste, um die Namen von Verzeichnissen automatisch zu vervollständigen. Das Hinzufügen eines Schrägstrichs am Ende des Verzeichnisnamens ist optional.
pushd
, popd
und dirs
sind eingebaute Shells, und ihr Verhalten kann sich von Shell zu Shell leicht unterscheiden. Wir werden die in Bash eingebaute Version der Befehle behandeln.
pushd
Befehl #
Die Syntax für den pushd
Befehl lautet wie folgt:
pushd [OPTIONS] [DIRECTORY]
Zum Beispiel, um das aktuelle Verzeichnis ganz oben im Verzeichnisstapel zu speichern und zu /var/www
zu wechseln Sie würden Folgendes eingeben:
~$ pushd /var/www
Bei Erfolg druckt der obige Befehl den Verzeichnisstapel. ~
ist das Verzeichnis, in dem wir den pushd
ausgeführt haben Befehl. Das Tilde-Symbol ~
bedeutet Heimatverzeichnis.
/var/www ~
pushd
speichert zuerst das aktuelle Arbeitsverzeichnis an der Spitze des Stapels und navigiert dann zum angegebenen Verzeichnis. Da sich das aktuelle Verzeichnis immer ganz oben auf dem Stack befinden muss, wird das neue aktuelle Verzeichnis nach einer Änderung ganz oben auf dem Stack abgelegt, aber nicht im Stack gespeichert. Um es zu speichern, müssen Sie pushd
aufrufen davon. Wenn Sie cd
verwenden Um in ein anderes Verzeichnis zu wechseln, geht das oberste Element des Stapels verloren,
Fügen wir dem Stack ein weiteres Verzeichnis hinzu:
/var/www$ pushd /opt
/opt /var/www ~
Um den Verzeichniswechsel zu unterdrücken, verwenden Sie das -n
Möglichkeit. Zum Beispiel, um /usr/local
hinzuzufügen Verzeichnis auf den Stack zu kopieren, aber nicht hinein zu wechseln, würden Sie Folgendes eingeben:
/opt$ pushd -n /usr/local
Da das aktuelle Verzeichnis (das immer ganz oben steht) nicht verändert wird, ist die Datei /usr/local
Verzeichnis wird als zweites von oben zum Stack hinzugefügt:
/opt /usr/local /var/www ~
Der pushd
akzeptiert zwei Optionen, +N
und -N
damit können Sie zu Nth
navigieren Verzeichnis des Stapels. Das +N
Option ändert sich zu Nth
Element der Stapelliste von links nach rechts beginnend bei Null. Wenn -N
verwendet wird, ist die Zählrichtung von rechts nach links.
Um die Optionen besser zu veranschaulichen, drucken wir den aktuellen Verzeichnisstapel aus:
/opt$ dirs -l -v
Die Ausgabe zeigt eine indizierte Liste des Verzeichnisstapels:
0 /opt
1 /usr/local
2 /var/www
3 /home/linuxize
Wenn Sie zu /var/www
wechseln möchten Verzeichnis und bringen Sie es an die Spitze des Stapels, verwenden Sie eine der folgenden.
Wenn von oben nach unten (oder von links nach rechts) gezählt wird, ist der Index des Verzeichnisses 2
.
pushd +2
Beim Zählen von unten nach oben der Index der /var/www
Verzeichnis ist 1
.
pushd -1.
Bei Verwendung ohne Argument pushd
schaltet die obersten zwei Verzeichnisse um und macht die neue oberste zum aktuellen Verzeichnis. Dies ist dasselbe wie bei der Verwendung von cd -
Befehl.
popd
Befehl #
Der popd
Befehl hat die Form:
popd [OPTIONS]
Bei Verwendung ohne Argument popd
entfernt das oberste Verzeichnis vom Stack und navigiert zum neuen obersten Verzeichnis.
Nehmen wir an, wir haben den folgenden Verzeichnisstapel:
/opt /usr/local /var/www /etc/nginx ~
Wenn Sie popd
ausführen Befehl wird es den /opt
entfernen vom Stack und wechseln Sie zu /usr/local
Verzeichnis:
/opt$ popd
Die Ausgabe zeigt den neuen Verzeichnisstapel:
/usr/local /var/www /etc/nginx ~
Das -n
Die Option unterdrückt den standardmäßigen Verzeichniswechsel und entfernt das zweite Element aus dem Stapel:
/opt$ popd -n
/usr/local /etc/nginx ~
Das gleiche wie pushd
, popd
akzeptiert auch +N
und -N
Optionen, die verwendet werden können, um den Nth
zu entfernen Verzeichnis des Stapels.
/opt$ popd +1
/usr/local ~
Schlussfolgerung #
Normalerweise würden Sie das cd
verwenden Befehl, um von einem Verzeichnis in ein anderes zu wechseln. Wenn Sie jedoch viel Zeit auf der Befehlszeile verbringen, kann pushd
und popd
Befehle steigern Ihre Produktivität und Effizienz.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.