Gibt es eine Möglichkeit, zum vorherigen Arbeitsverzeichnis zurückzukehren, nachdem Sie cd
in 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 cd
und 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 cd
und bin jetzt in meinem Home-Verzeichnis anstelle des Java-Projekts. Gibt es eine Möglichkeit, dies rückgängig zu machen cd
und zu dem Verzeichnis zurückzukehren, in dem ich mich befunden habe?
quelle
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 undcd -3
3 Ebenen zurück zu gehen.quelle
Sie können auch
pushd
und verwendenpopd
, um den Verzeichnisstapel zu verwenden :)Einige Infos hier
quelle
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 werdenpwd
.So können beide
cd ..
undcd -
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 Befehlencd
, der Sie zum Basisordner zurückbringt.quelle
Der beste Weg, dies für den Rückweg zu tun, ist
cd -
jedoch, wenn Sie viele Level auf einmal überspringen möchten, bessercd ..
für ein Levelcd ../..
, für zwei,cd ../../..
für drei und mehr ... ein guter Weg, dies schnell zu tun, ist dies Skript:quelle
cd
in 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.up(){ local n="$1"; while ((n--)); do path+='../'; done; cd "$path"; }