Wie kann ich über CLI schnell in tief verschachtelte Verzeichnisse wechseln und diese wieder verlassen?

16

Wir wissen, dass mit cd <directory>das Verzeichnis geöffnet wird, falls es existiert!

Außerdem cd ..werden wir eine Ebene aus dem aktuellen Arbeitsverzeichnis aufsteigen.

Aber wenn wir ein verschachteltes Verzeichnis mit einem längeren Pfad haben /home/thina/teams/td/tech/app/release/apks, ist es anstrengend, einfach in den Ordner zu gehen, apksund es ist auch schwierig, zu einem anderen Knoten zurückzukehren, sagen wir hier /home/thina/teams.

Gibt es eine Möglichkeit, die Eingabe von cdund zu überspringen cd ..? Ich benutze Ubuntu 16.04.

Gsthina
quelle
Ja! Gibt es eine Möglichkeit, die Eingabe von cdund zu überspringen cd ..?
Gsthina
@GSURENDARTHINA Ich denke, Sie wissen, dass Sie mindestens ein paar Tastenanschläge sparen können, indem Sie mehrere Ebenen gleichzeitig zurückgehen, z. B. in Ihrem Fallcd ../../../../..
underscore_d
2
Sind Symlinks eine Option?
Taschen
1
Sie können sich auch die CDPATHVariable in den bashDokumenten ansehen .
Chepner
Nur für den Fall, dass Sie es nicht bemerkt haben: Sie können "cd <Verzeichnis>" für jedes Verzeichnis im aktuellen Arbeitsverzeichnis ausführen - beginnen Sie einfach nicht mit einem Schrägstrich. Wenn Ihr Arbeitsverzeichnis also aktuell "/ home / thina / teams / td / tech / app / release" lautet, geben Sie einfach "cd apks"
jcadcell,

Antworten:

30

Es gibt pushdund popd:

pushd /home/thina/teams/td/tech/app/release/apks
# current directory now /home/thina/teams/td/tech/app/release/apks
popd
# current directory now what it was before pushd command

Versuchen Sie help pushdund help popdfür mehr Wahlen. Es gibt keine manSeite, weil pushdund popdBash-Befehle eingebaut sind.

Jos
quelle
5
Würdest cd -du nicht das Gleiche tun?
Edwinksl
5
@edwinksl ja, aber pushdund popdkann sich mehr als einen vorherigen Pfad merken.
Jos
8
Vergessen Sie nicht, dirsIhren Verzeichnisstapel in den Befehlen pushd/ popdaufzulisten.
Arronical
4
Diese werden auf der Handbuchseite für bash-builtins (7) behandelt, da es sich um integrierte bash-Befehle handelt. (Oder sie sind auch in der vollständigen Handbuchseite für bash zu finden. ) Es sind die gleichen Informationen wie die help pushdund, die help popdSie erwähnt haben (und auch help dirs), aber ich dachte, ich würde erwähnen, falls sich die Leute fragen, woher diese Befehle kommen.
MT
2
@Jos Sie falsch geschriebenhelp pusdh
Sergiy Kolodyazhnyy
16

Zusätzlich zu den sehr guten Antworten, die Sie bereits erhalten haben, finden Sie hier einige Tipps zur cdeffektiven Verwendung .

  • cd - bringt Sie zurück zum letzten Verzeichnis, in dem Sie sich befanden.
  • cd ../../..Wenn Sie 3 Ebenen auf einmal ..aufsteigen möchten , können Sie die Notation verwenden, um so viele Verzeichnisse nach oben zu verschieben, wie Sie möchten.
  • Wenn Sie nicht sicher sind, wie oft Sie nach oben cd ..springen möchten , verwenden Sie bash history, indem Sie die Pfeiltaste nach oben drücken, um den Befehl erneut zu verwenden.
  • Verwenden Sie ~stehen in der aktuellen Benutzer Home - Verzeichnis, wenn Sie sich als Benutzer thina angemeldet sind, cd ~/teamswerden Sie nehmen zu/home/thina/teams
  • cdWenn Sie die automatische Bash-Vervollständigung für Pfade verwenden, vervollständigt die Tabulatortaste einen Abschnitt eines Pfads im Befehl. Wenn Sie einen Teil eines Pfadsegments gefolgt von Tabdiesem eingeben, wird dieses Segment vervollständigt, wenn keine andere gültige Auswahl vorhanden ist. Wenn Sie zum Beispiel tippten und cd /home/thina/teams/td/tdann drückten Tab, wurde das Wort tech für Sie ausgefüllt, solange sich keine anderen Dateien oder Verzeichnisse im Verzeichnis td befanden, die mit dem Buchstaben t begannen.

Wenn Sie diese Tipps zusammen verwenden, können Sie das Durchsuchen von Verzeichnissen cdweitaus schmerzfreier gestalten.

Arronisch
quelle
2
Wenn Sie den Punkt hinzufügen ~, insbesondere wenn Sie als Root angemeldet sind, ~usergelangen Sie schnell in userdas Basisverzeichnis von.
ein CVn
Danke, das habe ich nicht gemerkt, ich werde es in der nächsten Bearbeitung hinzufügen.
Arronical
9

Um mehrere Ebenen gleichzeitig in den Baum zu springen, können Sie die folgende Funktion verwenden (Dank an muru für die erweiterte Version):

up ()
{
    local old="$PWD"
    for i in $(seq "${1:-1}"); do
        cd ..
    done
    OLDPWD="$old"
}

Dann können Sie tun:

$ pwd
/home/thina/teams/td/tech/app/release/apks
$ up 5
cd'ing into /home/thina/teams

Zusätzlich:

  • Das Aufrufen upohne Argument ist gleichbedeutend cd ..mit ${1:-1}dem $1Setzen von Ersatzzeichen und 1anderen
  • Das Einstellen von OLDPWD nach dem letzten cd ..zielt darauf ab, das übliche cd -Verhalten beizubehalten .
parras
quelle
1
Technisch gesehen ist dies eine Funktion, kein Alias.
Reinier Post
@ ReinierPost: Richtig genug! Ich habe dementsprechend korrigiert.
Parras
2
Vorschläge: -gtstatt >. >ist lexikografisch und wird als Zeichenfolge verglichen. Auch stattdessen einen Weg zu bauen, warum nicht cd ..in einer Schleife: for i in $(seq "${1:-1}"); cd ..; done? Das kann den ifZustand auch beseitigen .
muru
@muru Ich bin mit Ihrer gtBemerkung einverstanden , aber in Bezug auf Ihren zweiten Vorschlag finden Sie die letzte Kugel in der Antwort. Für mich ergibt das Sinn.
Oliphaunt - wieder Monica
1
@Oliphaunt das ist nicht besonders schwierig, du stellst einfach OLDPWDden ursprünglichen Pfad ein. Hier ist eine vollständige Version: paste.ubuntu.com/17990874
muru
7

Verwenden Sie für lange Verzeichnisnamen Variablen mit vollständigem Pfad. Beispielsweise,

APKS="/home/thina/teams/td/tech/app/release/apks"

Dann kannst du einfach machen cd "$APKS"

Ich habe diese Funktion in meinem Verzeichnis definiert, um die Anzahl der Verzeichnisse zu erhöhen .bashrc

goup() # go up x number of dirs
{
  num=$1
  while [ $num -ne 0  ];do
    cd ..
    num=$( expr $num - 1   )
  done
}

Um /home/thina/teamsvon apksIhnen zurückzukehren, würde tun

goup  6

Hier ist ein Anwendungsbeispiel:

$> pwd
/sys/class/backlight/intel_backlight
$> goup 3
$> pwd
/sys
$> 

Eine andere kleine Funktion, die ich mir ausgedacht, aber nie so oft benutzt habe, ist die bookmarkFunktion.

So funktioniert es: Ihr aktueller Ordner wird in einer Datei gespeichert, und Sie können dann auf der Grundlage der Zeilennummer in dieser Datei in ein bestimmtes Verzeichnis wechseln. Beispiel:

$> cd /etc/lightdm
$> bookmark
$> cat ~/.dirsbookmarks                                                                                                  
/home/xieerqi
/sys/class/backlight
/etc/lightdm
$> cd $( awk 'NR==2' ~/.dirsbookmarks  )                                                                                 
$> pwd
/sys/class/backlight

Und hier ist die Funktion selbst:

bookmark()
{ # bookmarks current dir
  pwd >> $HOME/.dirsbookmarks
}
Sergiy Kolodyazhnyy
quelle
5

UPDATE: Es gibt ein noch mächtigeres Tool als autojump:, fasdaber ich kenne es nicht.


Ich bin überrascht, dass noch niemand autojumpwas erwähnt hat

Diese Funktion verwaltet eine Datenbank der Verzeichnisse, die Sie am häufigsten über die Befehlszeile verwenden. (Verzeichnisse müssen zuerst besucht werden, bevor Sie darauf zugreifen können.)

Es ist im Grunde das, was @graipher gebaut hat, mit ein paar zusätzlichen Optionen.

Wie ich erwähnt auf eine andere Frage:

Nachdem Sie ein paar Mal in ein Verzeichnis cd:

cd /home/thina/teams/td/tech/app/release/apks

Sie können die Verknüpfung verwenden j, um schnell dorthin zu gelangen, unabhängig davon, in welchem ​​Verzeichnis Sie sich gerade befinden:

j apks

Beachten Sie, dass die Verwendung eines beliebigen Teils des Pfads funktioniert, sofern es sich um den höchsten auf der Liste handelt: j appführt Sie auch zu, .../apkswenn Sie mehrmals dorthin gegangen sind als zu .../app.

Ich würde es empfehlen, anstatt ein eigenes Skript zu haben, da es gut gepflegt ist, für Ubuntu vertrieben wird und andere nette Funktionen hat, wie zum Beispiel jump to child :

.../td/tech $ jc apk
.../release/apks $ 

Hat sich bewegt Sie apksin td, anstatt einige andere apksunter einem anderen Baum.

Ciprian Tomoiagă
quelle
+1 für 'fasd'. Es ist wirklich nützlich.
Thomas
4

Aliase

Ich habe eine Liste häufig verwendeter Verzeichnisse, die direkt über Alias ​​verfügbar sind. Dies umfasst auch Verknüpfungen für die Verzeichnisse in der Hierarchie.

alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias cdwork=/home/knub/Repositories/work
alias cduni=/home/knub/University

Wenn ich jetzt drei Stufen aufsteigen möchte, tippe ich einfach ....<Enter>und schon bin ich da!

knubben
quelle
Ich mag das auch, denn obwohl ich zuerst dachte "hmm 4 Perioden für 3 Ebenen ..." dann dachte ich: "Oh ja ... Computer! 0 , 1, 2, 3!" : D Jetzt leicht zu merken, nützlich und etwas, mit dem ich auch spielen werde. Prost!
P Smith
github.com/bac0n/bash_completion mit bash_completion
bac0n
4

Mach das ... an autocd Option ( shopt -s autocd), damit Sie nicht tippen müssen cd. Beispielsweise benötigen Sie nur den zweistelligen Befehl .., um zum übergeordneten Verzeichnis zu wechseln.

Wenn Sie zwischen zwei Verzeichnissen navigieren, können Sie mit zwischen ihnen wechseln cd - , wodurch zum vorherigen Arbeitsverzeichnis gewechselt wird. Die autocdOption wird nicht -ausgeführt, cd -aber Sie können einen Alias ​​oder eine Funktion dafür definieren.

Mit den eingebauten pushdund können Sie sich Verzeichnisse auf einem Stapel merkenpopd . Das eingebaute dirslistet den Verzeichnisstack auf (ich finde dirs -vlesbarer).

Wenn Sie häufig zu Unterverzeichnissen eines bestimmten Verzeichnisses wechseln und diese Unterverzeichnisse einen ziemlich eindeutigen Namen haben, fügen Sie sie der CDPATHVariablen hinzu. Seien Sie jedoch gewarnt, dass ich nie eine Situation gefunden habe, in der CDPATHes wirklich praktisch war.

Sie können eine Variable auf einen Verzeichnisnamen setzen und dann mit zu diesem wechseln $foo.

Zsh Installieren Sie zsh hat ein paar nette Features, die Bash nicht hat. Einige von ihnen können durch Schreiben von Funktionen emuliert werden, die den gleichen Job ausführen. Insbesondere mit der Zwei-Argument-Form von cdkönnen Sie bequem in ein anderes Verzeichnis mit einem ähnlichen Namen wechseln, z. B. von /home/thina/teams/td/tech/app/release/apks/com.acme/v1, läuft cd release betazu /home/thina/teams/td/tech/app/beta/apks/com.acme/v1.

Gilles 'SO - hör auf böse zu sein'
quelle
2

Wie ich bereits auf eine verwandte Frage zu UnixSE geantwortet habe, verwende ich dafür ein Skript namens z [github] .

Es merkt sich Verzeichnisse, in die Sie eine CD geschrieben haben, ordnet sie nach Häufigkeit (Häufigkeit + Aktualität) und ermöglicht es Ihnen, zu einem der gespeicherten Pfade zu wechseln, indem Sie einen Teil seines Namens verwenden.

Nachdem Sie mindestens einmal in ein Verzeichnis gebrannt haben, können Sie z. B .:

$ cd ~user/very/long/path/with/many/subfolders/

Mach einfach:

$ z sub

Dies funktioniert unter Verwendung des partiellen Namensvergleichs (vorausgesetzt, Sie haben kein anderes Verzeichnis im Pfad, das den Begriff sub enthält und dessen Häufigkeit höher ist).

Ich habe auch eine Funktion wie diese definiert, die zuerst eine normale CD ausprobiert und wenn dies fehlschlägt, z verwendet:

function cd() {
    builtin cd "$1" 2> /dev/null || z "$1" || (echo "cd: File or Directory not found: $1" >&2 && exit 1)
}

Dies gibt Ihnen das Beste von beidem. Befindet sich der Ordner im aktuellen Verzeichnis oder wird ein gültiger vollständiger Pfad angegeben, wird er nur dort cd, andernfalls wird versucht, eine Übereinstimmung in der Datenbank und dort cd zu finden. Dies erspart den (kleinen) Aufwand, manchmal mit cd arbeiten zu müssen (um die Datenbank zu trainieren, in einen Ordner zu wechseln, in dem Sie noch nie zuvor waren) und manchmal daran zu denken, gegebenenfalls z zu verwenden.

Graipher
quelle
Sind Sie sicher, dass dies cdnicht dazu zbeiträgt, die Datenbank mit häufig besuchten Verzeichnissen aufzubauen?
Leftaroundabout
Wie unterscheidet es sich von autojump?
Ciprian Tomoiagă
@leftaroundabout: Ich bin mir nicht sicher, aber bisher hat es gut funktioniert. z erstellt die Datenbank definitiv, wenn Sie die eingebaute CD verwenden (die mein Setup zuerst versucht). Nicht so sicher, ob die Datenbank aktualisiert wird, wenn der z-Teil verwendet wird. BEARBEITEN: Gerade getestet, ob die Datenbank aktualisiert wird, wenn eine $ builtin cd ~ / folder / i / have / not / been / to / yet / erstellt wird. Es ist.
Graipher
1
@ CiprianTomoiaga In der Tat scheint es im Grunde das gleiche zu tun. Das Überschreiben des von mir verwendeten CD-Befehls könnte auch dafür verwendet werden. Die verschiedenen Befehle von autocomplete scheinen jedoch interessant zu sein!
Graipher
btw: Ich bin nicht der Autor von z, finde es nur sehr nützlich.
Graipher
1

Drei weitere Optionen, die ich für gut befunden habe (obwohl ich in Zukunft möglicherweise pushdmehr verwenden werde, habe ich gerade erst davon erfahren):

  • Ordnen Sie Ihre Pfade so an, dass Sie nicht cdin tief verschachtelte Verzeichnisse wechseln müssen , oder vielmehr: Die Orte, die Sie häufig besuchen müssen, sind immer griffbereit. Dies erreichen Sie mit Symlinks : Behalten Sie die expliziten, gut hierarchisierten Verzeichnisse bei, aber erstellen Sie einen Schnellzugriffslink, damit Sie es sich bequem machen können.

    ln -s ~/teams/td/tech/app/release/apks ~/apks

    Anstatt den langen Pfad zu tippen, cdverwenden Sie dann cd ~/apksund cd ../teams(oder in diesem bevorzugten Beispiel ~/teams), um zurückzukehren.

  • Verwenden Sie keine einzelne Shell und keine CD zwischen den Pfaden, sondern lassen Sie eine Shell für jeden der Pfade laufen, in denen Sie arbeiten müssen. Für dieses Multitasking gibt es mehrere Ebenen:

    • Verwenden Sie mehrere Terminalfenster. Funktioniert am besten, wenn sich die Fenster in verschiedenen Arbeitsbereichen befinden .
    • Verwenden Sie mehrere Registerkarten in einem einzigen Fenster. Dies ist besonders gut geeignet, um nur ein paar Befehle in einem Verzeichnis auszuführen: Um zurückzukehren, schließen Sie einfach den Terminal-Tab!
    • (Nicht wirklich sinnvoll IMO, aber der Vollständigkeit halber :) Verwenden Sie einen Terminal-Multiplexer wie tmux.
    • Starten Sie einfach eine Aktion mit einem einzigen Befehl, der cdsich im Ordner befindet, dort eine Aktion ausführt und sofort die Kontrolle über den ursprünglichen Ordner zurückgibt: statt

      $ cd /home/thina/teams/td/tech/app/release/apks
      $ some_command this_file_here
      $ cd ../../../../..

      Mach einfach den Einzeiler

      $ (cd ~/teams/td/tech/app/release/apks; some_command this_file_here)

      oder äquivalent

      $ sh -c 'cd ~/teams/td/tech/app/release/apks
      > some_command this_file_here'
  • Nicht cd überhaupt , sondern einfach den Befehl direkt von Ihrem Home - Verzeichnis. Klammererweiterungen können hier sehr hilfreich sein: Statt

    $ cd /home/thina/teams/td/tech/app/release/apks
    $ some_command this_file_here other_file_also_apks
    $ cd ../../../../..

    du kannst tun

    $ some_command ~/teams/td/tech/app/release/apks/{this_file_here,other_file_also_apks}
links herum
quelle
pushdist sehr sehr nützlich. Möglicherweise möchten Sie weitere Informationen hinzufügen, um Ihre Antwort zu verbessern.
Sergiy Kolodyazhnyy
@ Serg: ja, aber ich selbst kenne pushd nur aus Jos 'Antwort oben .
links um den
Ah, ich sehe es. Nun, dann könnte es für zukünftige Antworten nützlich sein.
Sergiy Kolodyazhnyy
1

Pushd und Popd

Die Befehle pushdund popdsind meine Favoriten. Der pushdBefehl speichert die Verzeichnisse, die Sie besucht haben dirs, und kann mit dem Befehl angezeigt werden. Wenn Sie bereit sind, rückwärts zu springen popd, kehren Sie mit zurück.

Hier ist ein Beispiel für die Verwendung von Bash-Funktionen und -Aliasen:

sd ()
{
    pushd "$1" > /dev/null
}

po ()
{
    popd
}

alias d='dirs'

Ich benutze ständig eine Mischung dieser Befehle auf verschiedene Arten.

Aliase

Eine weitere Option für Verzeichnisse, auf die häufig zugegriffen wird, besteht darin, die Befehle cdoder einfach zu pushdaliasen. Verwenden Sie also die Beispiele aus Ihrem Beitrag:

alias cdapks='cd /home/thina/teams/td/tech/app/release/apks'
alias cdteams='cd /home/thina/teams'

Kombination

Kombinieren Sie die beiden Ideen und Sie können sogar Folgendes haben:

alias sdapks='sd /home/thina/teams/td/tech/app/release/apks'
alias sdteams='sd /home/thina/teams'

Das gibt Ihnen dann viel Flexibilität beim Durchlaufen von Verzeichnissen. Ich halte die cd***und sd***Aliase auf der Hand für Dinge wie Desktop, Documents, Music, Downloads, usw. und es ist sehr praktisch!

tniles
quelle
1

Try z.lua - Ein neuer CD-Befehl, mit dem Sie schneller navigieren können, indem Sie Ihre Gewohnheiten kennenlernen.

  • CD in ein Verzeichnis enthält foo:

    z foo
  • CD in ein Verzeichnis endet mit foo:

    z foo$
  • benutze mehrere Argumente:

    Angenommen, die folgende Datenbank:

    10   /home/user/work/inbox
    30   /home/user/mail/inbox

    "z in"würde /home/user/mail/inboxals höher gewichteter eintrag cd rein. Sie können jedoch mehrere Argumente an z.lua übergeben, um einen anderen Eintrag zu bevorzugen. Im obigen Beispiel "z w in"würde dann das Verzeichnis zu wechseln /home/user/work/inbox.

  • CD mit interaktiver Auswahl:

    Wenn mehrere Übereinstimmungen gefunden wurden, z -iwird mit eine Liste angezeigt:

    $ z -i soft
    3:  0.25        /home/data/software
    2:  3.75        /home/skywind/tmp/comma/software
    1:  21          /home/skywind/software
    > {CURSOR}

    Dann können Sie die Nummer eingeben und auswählen, wohin Sie vor der eigentlichen CD gehen möchten. z.B. 3 eingeben, um zu cd /home/data/software. Und wenn Sie einfach die EINGABETASTE drücken und nichts eingeben, wird es einfach beendet und bleibt, wo Sie waren.

    z.luaunterstützt auch die fzfinteraktive Auswahl oder Argumentvervollständigung:

    abschluss mit fzf

  • schnell zurück zum übergeordneten Element, ohne Folgendes einzugeben cd ../../..:

    Die neue Option "-b"kann schnell zu einem bestimmten übergeordneten Verzeichnis in Bash zurückkehren, anstatt "cd ../../ .." redundant einzugeben:

    • (Kein Argument) : cdIm Projektstammverzeichnis befindet sich das nächstgelegene übergeordnete Verzeichnis mit .git/ .hg/ .svn.

    • (Ein Argument) : cdGehen Sie in das nächste übergeordnete Element, das mit dem Schlüsselwort beginnt, und wechseln Sie zum übergeordneten Element, das das Schlüsselwort enthält, wenn Sie es nicht finden.

    • (Zwei Argumente) : Ersetzen Sie den ersten Wert durch den zweiten (im aktuellen Pfad).

    ...

    Beginnen wir mit einem Aliasing z -bauf zb:

    # go all the way up to the project root (in this case, the one that has .git in it)
    ~/github/lorem/src/public$ zb
      => cd ~/github/lorem
    
    # cd into to the first parent directory named g*
    ~/github/vimium/src/public$ zb g
      => cd ~/github
    
    # substitute jekyll with ghost
    ~/github/jekyll/test$ zb jekyll ghost
      => cd ~/github/ghost/test

Ich wünschte, es könnte Ihren Bedürfnissen entsprechen.

skywind3000
quelle
0

Fisch hat mehrere schöne Einrichtungen für die schnelle Fortbewegung.

  • Wenn Sie cd mit dem Rechtspfeil eingeben, wird die aktuellste CD wiederholt.
  • Mit cd Pfeil nach oben Pfeil nach rechts wird die zweitletzte CD wiederholt.
  • Etc.
  • Es hat prevd und nextd, die oft einfacher zu bedienen sind als pushd und popd.

Außerdem habe ich meine Lieblingsverzeichnisse mit ~ / f verknüpft, sodass ich mit ~ / f / x zu ~ / foo / bar / baz / experimental-data gelangen kann.

Theodore Norvell
quelle
0

Ich habe lange Aliase für häufig aufgerufene Verzeichnisse verwendet.

Ich habe auch eine Bash-Funktion namens ccb (Abkürzung für Create CD Bat File - Diese stammt aus DOS / Windows, wo das .bat-Shell-Skript ccb.bat eine weitere .bat-Datei zum Wechseln in das aktuelle Verzeichnis erstellt), die Aliase erstellt / anfügt (in der .bash_aliases-Datei) in das aktuelle Verzeichnis.

Beispiel: $ ccb myfav erstellt einen Alias ​​für das aktuelle Verzeichnis mit einem Alias ​​myfav in der Datei .bash_aliases und erstellt einen Quellcode für die .bashrc-Datei, sodass der Alias ​​sofort verfügbar ist.

Ich habe gerade eine neue Lösung gefunden. Es ist eine Bash-Funktion

## USAGE : lj <your_dir>
### lj -- short for LongJump -- (kinda similar to a C function which would jump to an address outside of your current function)
function lj() {
        pushd `find . -type d -name $1 -print | head -n 1`
}

$ lj deeply_nested_dir_name

Dies muss nichts aus der vorherigen Verwendung lernen. Das Problem, das dies möglicherweise nicht löst, ist: Wenn der Unterverzeichnisbaum mehr als 1 Verzeichnisse mit dem Namen "deeply_nested_dir_name" enthält, wird zum ersten Verzeichnis gesprungen, das von find gefunden wurde.

Außerdem kann diese Lösung keinen anderen Verzeichnisbaum aufrufen.

zwischen fest codierten aliasen und generierten aliasen und dieser neuen lj () - funktion werden die meisten meiner bedürfnisse berücksichtigt.

Hier ist meine ccb () - Bash-Funktion für alle, die sie verwenden möchten

function ccb() {
        foo=$PWD
        echo "" >> ~/.bash_aliases
        echo "alias $1='pushd $foo > /dev/null'" >> ~/.bash_aliases
        source ~/.bashrc
}
anjanb
quelle