Como otros han explicado, el directorio cambia en el proceso secundario de su script, no en el proceso terminal desde el que se llama el script. Después de que el proceso secundario muere, estás de vuelta en la terminal que queda donde estaba.
Varias alternativas:
1. Enlace simbólico
Ponga un enlace simbólico en su hogar al largo camino al que desea acceder fácilmente
$ ln -s /home/alex/Documents/A/B/C ~/pathABC
luego acceda al directorio con:
$ cd ~/pathABC
2. Alias
Pon un alias en tu ~ / .bashrc:
alias pathABC="cd /home/alex/Documents/A/B/C"
(desde aquí )
3. Función
Cree una función que cambie el directorio, la función se ejecuta en el proceso de su terminal y luego puede cambiar su directorio.
(desde aquí )
4. Evite correr como niño
Obtenga su script en lugar de ejecutarlo. El aprovisionamiento (hecho por .
o source
) hace que el script se ejecute en el mismo shell en lugar de ejecutarse en su propio subshell.
$ . ./pathABC
(de aquí y de aquí )
5. vars compatibles con cd
Establezca la cdable_vars
opción en su ~/.bashrc
y cree una variable de entorno en el directorio:
shopt -s cdable_vars
export pathABC="/home/alex/Documents/A/B/C"
Entonces puedes usar cd pathABC
(desde aquí )