Zurück zum vorherigen Verzeichnis in der Shell


306

Gibt es eine Möglichkeit, zum vorherigen Verzeichnis zurückzukehren, in dem wir bash, tcsh verwendet haben, ohne pushd / popd zu verwenden? Ich möchte etwas wie "back" eingeben und kehre zum vorherigen Verzeichnis zurück, in dem ich mich befunden habe.

Bearbeiten:

"cd -" funktioniert, aber nur für aktuelle und vorherige Verzeichnisse. Kann ich trotzdem zum vorherigen vorherigen Verzeichnis zurückkehren, so wie Sie es im Webbrowser tun können?

Grüße


1
Wie unten erwähnt, können Sie dazu "pushd" und "popd" verwenden.
bläulich

8
Nur eine Randnotiz "cd -" geht an das Standardverzeichnis des Benutzers (/ home / username)
sdaffa23fdsf

1
Beste Antwort imho: unix.stackexchange.com/a/180640/158177 liefert cd -1 bis cd -9, was meiner Meinung nach vom OP verlangt wurde
Titou,

Antworten:


413

cd - (geht zurück zum vorherigen Verzeichnis)

Wenn Sie in die anderen vorherigen Verzeichnisse wechseln möchten, ist dies nicht ohne weiteres möglich. Aber überprüfen Sie dieses Skript und Anweisungen:

Verlauf der besuchten Verzeichnisse in BASH

Der Befehl cd funktioniert wie gewohnt. Die neue Funktion ist der Verlauf der letzten 10 Verzeichnisse und der erweiterte Befehl cd, um sie anzuzeigen und darauf zuzugreifen. cd - (oder einfach Strg + w drücken) zeigt den Verlauf an. Vor jedem Verzeichnisnamen sehen Sie eine Nummer. cd -num mit der gewünschten Nummer springt aus dem Verlauf in das entsprechende Verzeichnis.


20
auch pushd und popd könnten nützlich sein
lorenzog

6
@lorenzog: lydonchandra, in seiner Frage, sagte : "ohne pushd / popd"
Snark

@ ogc-nick Um dies menüartig zu nutzen cd --, solltest du das erwähnte Skript verwenden
Ram

1
@ ogc-nick nein tut es nicht. Das --trennt einfach einen Befehl und seine Optionen von den Parametern (siehe diesen Beitrag ). Da keine weiteren Argumente folgen --, wechselt der letzte Befehl cdin Ihr Home-Verzeichnis. Das war vielleicht das zweite vorherige Verzeichnis, aber das ist nur ein Zufall.
Griddo

wow syntaktischer Zucker viel
BugWhisperer

24

Sie können auch eine Variable verwenden cd $OLDPWD. Dies kann auch in Shell-Skripten verwendet werden.


6
$ OLDPWD verwaltet das letzte Verzeichnis, aus dem Sie gekommen sind und das für Skripte geeignet ist. Ich benutze $ OLDPWD mit dem Befehl cp oft. ZB cp -v $ OLDPWD / Datei.
Neil Wightman

1

Für Windows (einschließlich Node.js Commads Prompt Console Case) funktioniert CD nicht - Um Sie nach oben zu bewegen, funktioniert ein Verzeichnis

cd ..

3
cd .. wechselt in das übergeordnete Verzeichnis, worum es nicht ging.
ViaSat

1
Dies ist Bash hier nicht Windows.
Timo

0

Ich finde, der einfachste Weg, dies zu tun, ist mit dieser .bashrc power edit: https://github.com/wting/autojump . Sie erhalten zu „markieren“ Ordner , die Sie navigieren, so dass sie eine Kurz Namen zu geben , die zu erinnern , einfach ist , (mein Rat, das Vorstehende ist nicht in der Dokumentation), wie Bilder für Bilder etc. ‚Sprung‘ kehren Sie zum Ordner , den Sie 'markiert' und 'markiert' listet Ordner auf, die Sie dem 'Stapel' hinzugefügt haben (wie bei pushd und pop d), mit dem zusätzlichen Vorteil, dass Ihre Marken von einer Sitzung zur nächsten ad infinitum gleich bleiben .

Ich habe es noch nicht auf mehr als einer Festplatte ausprobiert, aber die Ergebnisse sollten denen mit einem einzelnen Volume ähnlich sein.

S Wright


-1

Wenn Sie den Verzeichnisbaum durchgegangen sind und wieder zurückkehren möchten, cd ..ist dies mein persönlicher Favorit. Sie können ganz einfach in einem Zweig des Baums herumspringen, cd ..indem Sie ein Verzeichnis, cd ../..zwei und cd ../../..drei usw. hoch- und runtergehen. Sie können auch mit demselben Befehl wie cd ../../exampleoder cd ../../../example/exampleusw. in einem anderen Zweig hoch- und runtergehen hin und her zwischen Verzeichnissen, cd -oder $OLDPWDsind Ihre besten Wetten, wie andere erwähnt.


Gibt es einen bestimmten Grund, warum dies abgelehnt wurde? Es enthält richtige Antworten, wenn auch vielleicht nicht die einzigen.
Adam Erickson

-2

Ich denke, cd ..könnte helfen. Wenn Sie in einem ls -abeliebigen Verzeichnis einen Befehl ausführen, werden zwei Einträge angezeigt: einer mit dem Namen "." und ein anderes mit dem Namen ".."; Der einzelne Punkt verweist auf das Verzeichnis, in dem Sie sich bereits befinden, während der doppelte Punkt das vorherige Verzeichnis im Pfad ist.


22
..ist nicht das vorherige Verzeichnis, sondern nur das übergeordnete Verzeichnis.
Der Hochstapler

4
Diese Antwort bietet nützliche Informationen, auch wenn die Frage nicht richtig beantwortet wird. Deshalb hat es keinen Sinn, negative Stimmen zu stapeln, ich habe für die Mühe gestimmt.
Titou

1
Dies ist nicht Berkley, es gibt keine besonderen Auszeichnungen nur für die Teilnahme
nathanchere
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.