
Ich habe vor kurzem angefangen,cdr
in zum Merken der zuletzt verwendeten Verzeichnisse. Früher habe ich und dergleichen zsh
verwendet . Was ich vermisse, ist , was im Grunde bedeutet: „Ich bin mit der Verwendung dieses Verzeichnisses fertig, bring mich dorthin zurück, wo ich vorher war, und entferne diesen Eintrag im Stapel.“pushd
popd
Kann eine ähnliche Semantik mit erreicht werden cdr
?
Bearbeiten: „Verlauf“ in „Stapel“ ändern.
Antwort1
Du kannst Tippen
cdr -p $PWD
und cdr
wirdprunedas Verzeichnis, in dem Sie sich befinden, aus der Liste. Um ein anderes Verzeichnis zu bereinigen, ersetzen Sie einfach $PWD
durch den absoluten Pfadnamen des Verzeichnisses, das Sie entfernen möchten. Oder wenn Sie einen ganzen Satz von Verzeichnissen entfernen möchten, können Sie auch Glob-Muster im Argument verwenden. Und bevor cdr -p
Änderungen vorgenommen werden, wird Ihnen angezeigt, was die Ergebnisse Ihrer Aktion sein werden, und Sie werden aufgefordert, zu bestätigen, sodass Sie sich keine Sorgen machen müssen, „das Ganze versehentlich zu löschen“. Siehehttp://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Options-2Für mehr Information.
Um zum vorherigen Verzeichnis zurückzukehren, führen Sie Folgendes aus:
cd -
Sie können beides in einer Funktion kombinieren:
cdpop() {
local dir=$PWD
# `cdr` without arguments does the same `cdr 1`: Go back to the previous
# dir.
cdr
# `-P` does the same as `-p`, but is silent and doesn't ask for
# confirmation.
cdr -P $dir
}
Übrigens: Du kannst cdr
auch die Ausführung von cd
Befehlen einrichten. Um dies zu aktivieren, füge Folgendes in deine ~/.zshrc
Datei ein:
zstyle ':chpwd:*' recent-dirs-default true
Dann wird jedes Argument, das Sie an übergeben cdr
und das nicht spezifisch für ist, stattdessen cdr
an übergeben cd
. Dann müssen Sie nicht darüber nachdenken, ob Sie cd
oder verwenden cdr
; Sie können einfach immer cdr
für alles verwenden. Siehehttp://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Configuration-2Für mehr Information.
Eine Sache, die ich vermisse, ist
popd
, was im Wesentlichen bedeutet: „Ich verwende dieses Verzeichnis nicht mehr, bringen Sie mich dorthin zurück, wo ich vorher war, und löschen Sie diesen Eintrag im Verlauf.“
Kleine Korrektur: popd
entfernt kein Verzeichnis ausGeschichteentfernt es es aus demVerzeichnisstapel.