Momentan verbringe ich einen großen Teil meiner Arbeitszeit damit, mich zwischen zwei Pfaden hin und her zu bewegen, die sich sehr weit unten im Baum befinden und an der Wurzel voneinander abweichen. Es fällt mir auf, dass mein Leben viel einfacher wäre, wenn es ein Argument dafür gäbe cd
Damit gelangt der Benutzer zum letzten Verzeichnis, in dem er sich befand.
Das heißt, wenn ich in bin:
/etc/foo/bar/baz/moo
und tippe dann:
cd /var/lib/fubarred_app/blargh/logs
Ich möchte in der Lage sein, zum ersten Verzeichnis zurückzukehren, ohne den gesamten Pfad erneut eingeben zu müssen.
Die Memory-Taste schneidet nicht ab, da ich an jeder Stelle so viele Befehle verwende, dass es genauso schwierig ist, zurückzukehren und den gewünschten Pfad zu finden, wie es ist, ihn selbst einzugeben.
Gibt es einen kurzen Befehl, mit dem ich zum vorherigen Verzeichnis wechseln kann?
bazmoo
" oder "blarghlog
"an der Eingabeaufforderung :)Antworten:
Der Befehl
Für die meisten Mainstream-Shells wird der benötigte Swap ausgeführt, für die ältere längere Variante
Hier wird die Umgebungsvariable verwendet, die das vorherige Arbeitsverzeichnis enthält.
Das POSIX-Manpage für
cd
Erwähnungen:quelle
cd $OLDPWD
dafür. Es ist schön, dass Mainstream-Shells eine viel kürzere Form bieten.pushd
, und zumindest ist es ein eingebautesbash
.Zusätzlich zu Bryans Antwort sollte erwähnt werden, dass es auch welche gibt
pushd
undpopd
, die Verzeichnisse wie einen Stapel aufbauen. Dies ist auch unter Windows NT verfügbar. Es ist jedoch nicht in allen Shells verfügbar.Zum Beispiel können wir zu drei verschiedenen Verzeichnissen gehen, und Sie werden immer Ihren Stapel sehen, wenn Sie aufrufen
pushd
:Und wenn du anrufst
popd
dreimal hintereinander gelangen Sie in umgekehrter Reihenfolge zu diesen Verzeichnissen im Stapel. Gleichzeitig wird der Stapel wieder geleert.Wenn Sie Zsh verwenden; Es verfügt über eine AUTO_PUSHD-Option, die automatisch gedrückt wird
cd
ist auf dem stapel.quelle
cd
zupushd
und es wäre meistens dasselbe.Es gibt einige "Sprung" -Programme
Diese erleichtern jede Art der Verzeichnisnavigation. Sie verwenden es, indem Sie einen Teil des Pfades angeben, und es funktioniert einfach.
In Ihrem Fall
Sie können diesen Programmen einen beliebigen Buchstaben zuweisen, "j" ist Tradition :)
j2 und z unterstützen mehrere Suchbegriffe, ...
... und mehr Möglichkeiten.
quelle
Zusätzlich zu
cd -
undcd $OLDPWD
Sie können die Verlaufssuche verwenden, indem Sie drücken
CTRL-R
und tippe ein paar Buchstaben descd
Befehl, den Sie zuvor eingegeben haben. Drücken SieCTRL-R
bringt immer wieder ältere Übereinstimmungen.Diese Methode ist nützlicher, wenn Sie mehr als zwei Pfade ändern müssen.
quelle
cd
, tolle Hilfe!Sie können dies verwenden, um Aliase für Verzeichnisse zu erstellen:
und später:
quelle
alias =
Teile? hmmmmbashmarks Mit dieser Option können Sie eine Reihe von Ordnern mit einem Lesezeichen versehen und mit Tabulatorvervollständigung zwischen ihnen wechseln:
quelle
Eine andere Möglichkeit wäre, nur zwei Fenster offen zu halten, wobei sich eines in jedem Verzeichnis befindet.
quelle
share_history
in zsh.Ich weiß, dass dies nicht unbedingt eine Antwort auf Ihre Frage ist, aber es ist hilfreich, um das Ziel von zu erreichen Sie zu Ihren wichtigen Verzeichnissen bringen .
in jeder absteigenden UNIX-bash können Sie verwenden CDPATH um den Ordner zu erweitern, in dem der cd-Befehl sucht.
aus meiner .bashrc-datei:
CD suche zuerst in deinem aktuellen ordner, dann in meinem codier-projekt-verzeichnis.
.. bringt mich zu ~ / sources / myproject von wo immer ich gerade stehe.
Einfaches kleines Feature, das meiner Verzeichnisnavigation sehr geholfen hat.
quelle
cd
's Autocomplete (TAB) Liste, die gut ist. Aber wenn das.
ist nicht enthalten und wenn es einen Ordner in einem CDPATH-Ordner mit dem gibt gleicher Name als eine in Ihrem aktuellen Verzeichnis, danncd samename
Wechselt in das CDPATH-Verzeichnis und nicht die im aktuellen Verzeichnis, die schlecht ist. Benutzen müssencd ./samename
in einen Dup-Ordner gelangen.Jep,
cd -
ist der Weg zu gehen, aber ich mache mir Sorgen über den Mangel an Kraft, den Sie in Ihrer Schale haben.popd
undpushd
sind auch gut, und dasj
das sieht auch gut aus.Ich werde mein eigenes Dienstprogramm in den Ring werfen ... es ist nur etwas, das ich in den letzten 10 Jahren mit mir erstellt, angepasst und migriert habe, und es funktioniert einwandfrei für das, was ich möchte.
Blogpost für mein Verzeichnisverwaltungsdienstprogramm
Wenn es für dich funktioniert, dann großartig, aber wenn es mir dann nichts verspricht, bekommst du etwas anderes :) Du kannst einfach nicht damit leben
cd
allein.quelle
Wenn Sie nur 2 Verzeichnisse haben, ist der einfachste Weg, wie erwähnt,
Wenn ich solche Dinge in der Vergangenheit hatte, hatte ich ein paar Tricks, die hilfreich sein könnten.
Fügen Sie Alias-Befehle in die CSHRC-Datei ein
Verknüpfen Sie Verknüpfungen mit den Pfaden von Interesse aus meinem Home-Verzeichnis. Dies ist eine einmalige Sache.
Dies würde das Ändern eines Verzeichnisses so einfach machen wie:
quelle
Autojump ist ein bash / sh / zsh "cd" -Befehl, den Sie aus Ihren Aktionen entnehmen können Video .
das würde dich also zu moo bewegen, nachdem es die letzten ordner gelernt hat
quelle
Strahl
Ich habe mein eigenes Werkzeug, werde aber einen Blick auf Dereks Werkzeug werfen und
j
auch.Natürlich ist die erste Wahl, um hin und her zu springen
Mein Tool ist für Verzeichnisse mit eindeutigen Namen auf Systemen gedacht, auf denen
locate
ist verfügbar; Es sucht nach einem passenden Verzeichnisnamen und springt in die erste Übereinstimmung:Abhängigkeiten:
Nachteile:
Verbesserungen / Modifikationen:
Verwendungszweck:
Vorteil meiner Lösung:
cd -
quelle