Tengo un enlace simbólico
~/link -> ~/a/really/long/path
Cuando lo hago
cd ~/link
cd ..
me lleva a
~
pero quiero ir a
~/a/really/long
¿Hay alguna forma de hacer esto?
Estoy usando bash
bash
cd-command
Xodarap
fuente
fuente
cd ~/a/really/long/path
entoncescd ..
le pone en~
el momento actual: No puedo reproducir eso.~/a/really/long/path
luego cd a eso y luego a..
. Deberías terminar de nuevo en ~ (suponiendo que ahí es donde empezaste).Respuestas:
Bash (así como ksh, zsh e incluso ash) realiza un seguimiento de los cambios en el directorio para que
cd /foo/bar && cd ..
siempre te lleve/foo
incluso sibar
es un enlace simbólico. Pase la-P
opción acd
ignorar el cambio seguido y siga la estructura de directorios "física":Consulte
help cd
oman builtins
para obtener documentación sobre el bash incorporadocd
. Si realmente no le gusta la función de seguimiento de directorios, puede desactivarlaset -P
en bash (set -o no_chase_link
en zsh).fuente
-P
o-o physical
ya establecido?También puede usar readlink para encontrar la ruta física a este directorio, luego ir un directorio más arriba:
fuente
Un método que podría usar es usar un alias en lugar de un enlace simbólico para llevarlo a ~ / a / really / long / path. Ese es el método que uso, desde entonces solo puedo escribir un simple comando 1/2 / etcétera en lugar del enlace simbólico cd
fuente