Linux Verzeichnis wechseln mit bash script

Gast #4780148
Lesenswert?

Hallo zusammen,

unter Windows mache ich mir manchmal batch-files um in der Kommandozeile 
schnell in ein anderes langes Verzeichnis zu wechseln.

also z.B.

x.bat

darin steht

cd c:/Tools/bla/blub/irgendwo

Wenn ich die Batch-Datei laufen lasse, bin ich hinterher im richtigen 
Verzeichnis.

Wenn ich das selbe mit einem Shell-Script unter Linux mache, bin ich 
hinterher immer noch im gleichen Verzeichnis.

Wie macht man so was unter Linux?
Gast #4780172
Lesenswert?

Marc schrieb:
> Wenn ich das selbe mit einem Shell-Script unter Linux mache, bin ich
> hinterher immer noch im gleichen Verzeichnis.
>
> Wie macht man so was unter Linux?

nicht so, wie unter Windows...;-)

Hintergrund, warum es nicht geht: wenn du ein Shell(!)-Script ausführst, 
wird eine neue Shell gestartet, in der die Befehle des Scripts 
ausgeführt werden und die sich danach dann schließt.

Definier dir einen Alias (https://wiki.ubuntuusers.de/alias/).
Gast #4780218
Lesenswert?

'autojump' macht auf den ersten Blick einen guten Eindruck, aber bis ich 
das installiert habe, bin ich wohl ein Weil unterwegs.

Die Aliase funktionieren gut. Ich werde die verwenden.

Vielen Dank für eure Hilfe :-)
#4780514
Lesenswert?

Weitere einfache Möglichkeiten:

Symbolische Links zu den Zielverzeichnissen im Heimverzeichnis anlegen 
und cd in diese. Das cd funktioniert dann aber nur im Heimverzeichnis 
(aber mit cd ohne Verzeichnisnamen kommt man leicht dorthin).

Mit "shopt -s cdable_vars" diese Option aktivieren und die 
Verzeichnispfade in Variablen ablegen. Mit "cd Variablenname" kommt man 
dann ins entsprechende Verzeichnis.
Moderator Persönliche Seite #4780655
Lesenswert?

Ich würde auch den Weg über aliases gehen.

Aber hier noch eine weitere Möglichkeit zur Info, die bei vielen in 
Vergessenheit geraten ist: Mit der Environment-Variablen CDPATH kann man 
Suchpfade für cd einstellen.

Beispiel:
1
   export CDPATH=.:..

sucht erst im aktuellen Pfad, anschließend im übergeordneten. Damit kann 
man ganz leicht "um die Ecke" springen, ohne "../" erst eingeben zu 
müssen.

Beispiel:
1
$ cd /usr
2
$ cd bin
3
/usr/bin
4
$ cd games
5
/usr/games
6
$ cd include
7
/usr/include

cd gibt dann den neuen Pfad automatisch aus, wenn das Verzeichnis über 
den CDPATH gefunden wurde.

Lustig wirds dann mit absoluten Pfadangaben:
1
export CDPATH=.:..:/usr/local
2
$ cd /
3
$ cd share
4
/usr/local/share
5
$ cd /lib
6
$ cd games
7
/usr/local/games
Gast #4780816
Lesenswert?

Frank M. schrieb:
> Mit der Environment-Variablen CDPATH kann man
> Suchpfade für cd einstellen.
>
> Beispiel:   export CDPATH=.:..

Nein, nein, NEIN!! CDPATH soll man niemals exportieren. Die Chancen 
stehen gut, dass man dadurch ein unaufmerksam geschriebenes Skript ins 
Schleudern bringt, wenn man es aufruft. Das Skript könnte ja cd mit 
relativen Pfaden verwenden und zufällig ein Directory erwischen, das 
über CDPATH erreichbar ist.

Man setzt CDPATH in .bashrc oder .profile, aber exportiert nicht!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren