Wie kann ich den letzten CD-Befehl rückgängig machen?

77

Gibt es eine Möglichkeit, zum vorherigen Arbeitsverzeichnis zurückzukehren, nachdem Sie cdin ein anderes Verzeichnis gewechselt haben?

Mein Anwendungsfall ist, dass ich eine Verzeichnisstruktur für ein Java-Projekt durchquere und erwarte, dass das aktuelle Verzeichnis nur ein Unterverzeichnis enthält. Also, ich tippe cdund drücke Tabund Enterziemlich schnell. Allerdings ist das Tabfehlgeschlagen, da ich fälschlicherweise ein Unterverzeichnis erwartet habe, obwohl es tatsächlich mehr gibt. Also habe ich gerade ausgeführt cdund bin jetzt in meinem Home-Verzeichnis anstelle des Java-Projekts. Gibt es eine Möglichkeit, dies rückgängig zu machen cdund zu dem Verzeichnis zurückzukehren, in dem ich mich befunden habe?

nickb
quelle

Antworten:

130

Mit können Sie cd -zu Ihrem vorherigen Standort zurückkehren, egal wo sich dieser befand.

ImaginaryRobots
quelle
10
Naja ... auch nach Jahren auf Ubuntu wusste ich das nicht. Danke
andybleaden
19

cd - eignet sich hervorragend, um eine Ebene zurück zu gehen. Wenn Sie jedoch feststellen, dass Sie einige Ebenen zurückgehen möchten, lesen Sie das folgende Skript:

acd_func.sh

Es ist toll. cd --um zum Beispiel Ihre Geschichte zu sehen und cd -33 Ebenen zurück zu gehen.

Dean
quelle
Wow ... ein Geocities-Link. Jetzt gibt es eine URL, die ich schon lange nicht mehr gesehen habe. <Obi-wan JPG einfügen>
Michael Butler
1
der Kern dieses Kommentars. <jpg Yoda insert>
Donbhupi
15

Sie können auch pushdund verwenden popd, um den Verzeichnisstapel zu verwenden :)

Einige Infos hier

Sinan Bolel
quelle
5

Darüber hinaus cd ..können Sie nehmen wieder in das Arbeitsverzeichnis des Elternverzeichnis und dann bei Bedarf der Befehl wiederholt werden kann , bis Sie zu erhalten , wo Sie sein möchten. Tatsächlich führt es Sie jedes Mal, wenn es aufgerufen wird, zurück durch den Verzeichnisbaum, der letztendlich bei /(dem Stammverzeichnis) endet , wenn Sie den Befehl nur wiederholt haben.

Im Gegensatz , cd -macht tatsächlich das vorherige Arbeitsverzeichnis des aktuelle Arbeitsverzeichnis, (die als bekannt ist .), und welche genaue Position im Dateisystem kann mit gefunden werden pwd.

So können beide cd ..und cd - unter verschiedenen Umständen beim Navigieren im Verzeichnisbaum nützlich sein, obwohl sie sich in den oben genannten Punkten unterscheiden. Vielleicht ist der nützlichste Befehl nach dem Experimentieren mit diesen beiden Befehlen cd, der Sie zum Basisordner zurückbringt.


quelle
-1

Der beste Weg, dies für den Rückweg zu tun, ist cd -jedoch, wenn Sie viele Level auf einmal überspringen möchten, besser cd ..für ein Level cd ../.., für zwei, cd ../../..für drei und mehr ... ein guter Weg, dies schnell zu tun, ist dies Skript:

#!/bin/bash
printf "Number of folders to move back: "
read TIMES
BACKCHARS=../
BACK=$(for i in `seq $TIMES`; do printf $BACKCHARS; done)
cd $BACK
user258456
quelle
1
Das Ausführen cdin einem Skript wirkt sich nicht auf die übergeordnete Shell aus. Sie müssten dies in eine Shell-Funktion einfügen, damit es nützlich ist.
wjandrea
wie up(){ local n="$1"; while ((n--)); do path+='../'; done; cd "$path"; }
folgt