Gibt es so etwas wie Bashs Reverse-Search-History (Strg-R), aber nur für Verzeichnisse?
Ich habe einige tiefe Ordnerhierarchien, zu denen ich springen möchte, also würde ich gerne etwas wie Reverse-Search-History verwenden, aber es sucht nur nach Ordnernamen und gibt mir absolute Pfade.
Im Wesentlichen würde dies zu ähnlichen Ergebnissen führen wie die Verwendung von !?
Befehlen , die jedoch nur mit cd im Vordergrund übereinstimmen. Sie können die Ergebnisse schrittweise durchlaufen und vollständige Pfade angeben.
Die beste Lösung, die ich bisher gefunden habe, sind Bashmarks .
Antworten:
Schauen Sie sich Autojump an :
quelle
Es gibt
Das ist der Befehl "cd [Leerzeichen] [Bindestrich]", der zu dem Verzeichnis wechselt, in dem Sie sich zuvor befanden, im Wesentlichen eine "Geschichte der Tiefe 1". Wiederholtes "cd -" wechselt zwischen zwei Verzeichnissen hin und her.
Zitierende Manpage:
Leider kenne ich kein echtes eingebautes Verzeichnisprotokoll.
quelle
pushd dir
popd
Paar, das Ihren Verlaufsstapel von Verzeichnissen speichern kann. Dies ist sehr hilfreich bei Skripten, die in verschiedenen Ordnern ausgeführt werden.pushd
undpopd
und es wird hier auch schon erwähnt.bash hat pushd / popd / dirs. Ich habe dies in meinem .bashrc, um Verzeichnisse automatisch auf den Stack von bash zu pushen.
Pop diese mit
popd
und zeigen den Stapel mitdirs
quelle
Ich habe gute Erfahrungen mit Z-Jump gemacht. Es ermöglicht die Fertigstellung, allerdings nur für das endgültige Ziel, ohne einen Pfad zu durchlaufen. Es wird jedoch der vollständige Pfad nach Fertigstellung der Registerkarte angezeigt.
quelle
Um meine eigenen Erfahrungen einfließen zu lassen, habe ich vor einiger Zeit ein einfaches Skript geschrieben, um diese Anforderung zu erfüllen. Es überschreibt den eingebauten Befehl cd mit einer einfachen Funktion, mit der der neue Verzeichnispfad an eine Verlaufsdatei angehängt wird Stellen Sie eine Bash-Schnittstelle bereit, die eine geordnete Liste von Verzeichnissen dynamisch aktualisiert, wenn Sie Suchbegriffe eingeben, ähnlich wie bei der Rückwärtsbefehlssuche von Bash.
Es ist auf Git-Hub für diejenigen, die neugierig sind.
quelle
Ich möchte meine
ltcd
für eine schnelle Navigation durch den Verzeichnisverlauf empfehlen :https://github.com/dczhu/ltcd
Es bietet die folgenden Funktionen, um das Leben zu erleichtern:
quelle
Ich habe ein Skript erstellt , das eine ähnliche Funktionalität hat wie der
dirs -v
Befehl oh-my-zsh, der mit bash funktioniert. Wenn Sie jemals oh-my-zsh verwendet haben , ist Ihnen möglicherweise aufgefallen, dass der vom Befehl bereitgestellte Verzeichnisverlaufdirs -v
bei jedem Verlassen des Terminals zurückgesetzt wird. Es wird jedoch nicht passieren, wenn Sie dieses Skript verwenden .Die Funktionalität:
Zeigt die Liste der 10 zuletzt verwendeten Verzeichnisse mit an
d
.Wechseln Sie zu einem beliebigen Verzeichnis in der Liste, indem Sie die Nummer des Verzeichnisses in die Liste eingeben. Sie müssen 0 anstelle von 10 verwenden, um zum 10. Verzeichnis zu springen.
Ein Verzeichnispfad wird jedes Mal an den Anfang der Liste gesetzt, wenn Sie
v
( vim ) zum Bearbeiten von Dateien odero
( xdg-open ) zum Öffnen einer Datei aus diesem Verzeichnis verwenden. Oder wenn Sie möchten, jedes Mal, wenn Sie ein Verzeichnis besuchen.Sie können es hier in Aktion sehen .
quelle
Nun, man könnte diesen Code - Schnipsel hinzufügen Ihren
~/.bashrc
, welcherBietet einen benutzerdefinierten CD-Befehl
und bietet einen CD-Verlaufs-Suchbefehl.
Natürlich ist der von mir bereitgestellte Befehl cdhist sehr einfach und nicht das, was Sie wollten. Es ist jedoch denkbar, case-Anweisungen oder Parametererweiterungen zu verwenden, um etwas zu erreichen, das Ihren Vorstellungen entspricht.
Sie könnten sogar eine "Programmierbare Vervollständigung" -Funktion hinzufügen, mit der Sie den vollständigen
cd /path/to/mydir
Befehl basierend auf einer eindeutigen Unterzeichenfolge von hinzufügen können/path/to/unique/mydir
, obwohl für diese Methode weiterhin eine Eingabe erforderlich istcd unique/mydir<tab>
.quelle
dirs
Befehl von bash gefunden, der im Wesentlichen das Gleiche bewirkt wiemy_dirs
, jedoch in einer Zeile.alias cd=pushd
wäre die eleganteste Form.Sie können Ihre eigenen bauen
cd
Befehl mitpushd
,popd
,dirs
gebautet Befehle.Verwendung
cd --
(aktuelle Historie auflisten)cd -num
(gehe zum num Verzeichnis)cd -
(gehe zum vorherigen Verzeichnis)quelle
Ich habe dieses Tool zusammengestellt, das frühere Lösungen zum Speichern eines umfassenden globalen CLI-Verlaufs mit einem interaktiven Grepping-Tool namens Percol (auf C ^ R abgebildet) kombiniert. Ich benutze es, um Befehle von wo sie ausgeführt wurden abzurufen oder um ein Verzeichnis von einem Befehl zu finden. Es ist auf dem ersten Computer, auf dem ich mit der Verwendung begonnen habe, immer noch ein Kinderspiel.
Das grep-Tool kann sowohl mit dem Pfad als auch mit dem Befehl verwendet werden, ist jedoch möglicherweise weiterhin nützlich für Sie. Siehe auch 'dirs -v' in zsh
https://github.com/gawells/ariadne
quelle
cd share/man
nur, wenn ich schon in / usr bin.