Modifica della directory principale (../) con collegamenti simbolici


32

Ho un link simbolico

~/link -> ~/a/really/long/path

Quando io faccio

cd ~/link
cd ..    

mi ci vuole

~

ma voglio andare a

~/a/really/long

C'è un modo per fare questo?

Sto usando bash.


1
Vuoi dire che cd ~/a/really/long/pathallora cd ..si mette in ~in questo momento? Non riesco a riprodurlo.
Mikel,

1
@Mikel: No, prima crea un link simbolico per ~/a/really/long/pathpoi cd su quello poi su ... Dovresti finire di nuovo in ~ (supponendo che sia da lì che hai iniziato).
Xodarap,

La mia modifica è accurata? Non riuscivo a capire la domanda prima.
Mikel,

Risposte:


38

Bash (così come ksh, zsh e persino ash) cd /foo/bar && cd ..tiene traccia delle modifiche alla directory in modo da portarti sempre /fooanche se si bartratta di un collegamento simbolico. Passare l' -Popzione per cdignorare la modifica tracciata e seguire la struttura di directory "fisica":

cd -P ..

Vedi help cdo man builtinsper la documentazione sull'integrato bash cd. Se non ti piace davvero la funzione di tracciamento della directory, puoi disattivarla con set -Pin bash ( set -o no_chase_linkin zsh).


1
Il modo in cui ho letto la domanda, l'OP ha -Po è -o physicalgià impostato?
Mikel,

+1, ma suggerisci un link alla pagina man.
Faheem Mitha,

@Mikel: No, la domanda dice che sta seguendo il collegamento simbolico, non la struttura della directory fisica.
Faheem Mitha,

Spiacenti, in realtà non ho provato a modificare il tuo post. Modifica suggerita inviata ora.
Faheem Mitha,

4

Puoi anche usare readlink per trovare il percorso fisico di questa directory, quindi andare più in alto di una directory:

cd $(readlink -f .)/..

3

Un metodo che potresti usare è usare un alias invece di un symlink per portarti su ~ / a / really / long / path. Questo è il metodo che uso, da allora posso solo digitare un semplice comando di lettera cetera 1/2 / et invece di cd symlink

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.