Ein Bash-Einzeiler, um in das Verzeichnis zu wechseln, in dem sich eine Datei befindet

8

Ich möchte oft in das Verzeichnis wechseln, in dem sich eine bestimmte ausführbare Datei befindet. Also möchte ich etwas wie

%Vor%

um in das Verzeichnis zu wechseln, in dem der Python-Befehl installiert ist. Dies ist jedoch offensichtlich illegal, da cd ein Verzeichnis und keine Datei verwendet. Es gibt offensichtlich einige regexp-foo, die ich tun könnte, um den Dateinamen zu streichen, aber das würde den Punkt davon überwinden, ein einfacher Einliner zu sein.

    
bsdfish 13.05.2009, 01:10
quelle

7 Antworten

16

Hier:

%Vor%

Bearbeiten:

Noch einfacher (tatsächlich diesmal getestet):

%Vor%

Dann "cdfoo python".

    
Lance Richardson 13.05.2009, 01:16
quelle
8

Um all diese externen Programme zu vermeiden ('dirname' und viel schlimmer, das nutzlose, aber populäre 'was'), vielleicht ein bisschen umgeschrieben:

%Vor%

Dies behebt auch das unübliche Schlüsselwort 'function' von oben und fügt (sehr einfache) Fehlerbehandlung hinzu.

Kann ein Anfang für eine sphistizierte Lösung sein.

    
TheBonsai 13.05.2009 04:29
quelle
3

Zum Vergleich:

%Vor%

= cmd expandiert zum Pfad zu cmd und (: h) ist ein glob Modifikator, um den Kopf zu übernehmen

zsh ist schreibgeschützt aber leistungsstark.

    
Phil P 13.05.2009 05:04
quelle
2

sollte so etwas machen:

%Vor%     
Thomas Levesque 13.05.2009 01:18
quelle
2

Eine Funktion, die ich verwendet habe, ist Pushd / Popd. Diese verwalten einen Verzeichnis-Stack, so dass Sie nicht versuchen müssen, den Verlauf Ihrer Position zu behalten, wenn Sie vor dem Wechseln der Verzeichnisse zum aktuellen Arbeitsverzeichnis zurückkehren möchten.

Zum Beispiel:

%Vor%     
Kam 13.05.2009 03:23
quelle
1

Sie könnten etwas wie folgt verwenden:

%Vor%     
Rob Carr 13.05.2009 01:18
quelle
0

Ich habe ein bisschen einfache Fehlerbehandlung hinzugefügt, die das Verhalten von cdfoo () dem von dirname für nicht existierende / nonpath Argumente

folgt %Vor%     
Dennis Williamson 13.05.2009 05:00
quelle

Tags und Links