Tal vez sea mejor usar enlaces
Enlace suave
Enlace simbólico o suave (archivos o directorios, más flexible y autodocumentado)
# Source Link
ln -s /home/jake/doc/test/2000/something /home/jake/xxx
Enlace fijo
Enlace fijo (solo archivos, menos flexible y no autodocumentado)
# Source Link
ln /home/jake/doc/test/2000/something /home/jake/xxx
Cómo crear un enlace a un directorio
Sugerencia :Si no necesita ver el enlace en su casa, puede comenzarlo con un punto.; entonces estará oculto de forma predeterminada y podrá acceder a él como
cd ~/.myHiddelLongDirLink
Hay una opción de shell cdable_vars
:
cdable_vars
Si esto está establecido, un argumento para el cd
Se supone que el comando integrado que no es un directorio es el nombre de una variable cuyo valor es el directorio al que cambiar.
Podrías agregar esto a tu .bashrc
:
shopt -s cdable_vars
export myFold=$HOME/Files/Scripts/Main
Observe que he reemplazado la tilde con $HOME
; las comillas evitan la expansión de la tilde y Bash se quejaría de que no hay un directorio ~/Files/Scripts/Main
.
Ahora puede usar esto de la siguiente manera:
cd myFold
Sin $
requerido. Ese es el punto, en realidad, como se muestra en otras respuestas, cd "$myFold"
funciona sin la opción de shell. cd myFold
también funciona si la ruta en myFold
contiene espacios, no se requieren comillas.
Esto generalmente incluso funciona con el autocompletado de pestañas como el _cd
función en bash_completion
comprueba si cdable_vars
está configurado, pero no todas las implementaciones lo hacen de la misma manera, por lo que es posible que deba obtener bash_completion
de nuevo en tu .bashrc
(o editar /etc/profile
para establecer la opción de shell).
Otros shells tienen opciones similares, por ejemplo Zsh (cdablevars
).
Dado que es una variable de entorno (alias tiene una definición diferente en bash
), necesita evaluarlo con algo como:
cd "${myFold}"
o:
cp "${myFold}/someFile" /somewhere/else
Pero en realidad lo encuentro más fácil, si solo desea la facilidad de cambiar a ese directorio, crear un real alias (en uno de los bash
archivos de inicio como .bashrc
), para poder guardar pulsaciones de teclas:
alias myfold='cd ~/Files/Scripts/Main'
Entonces puedes usar (sin el cd
):
myfold
Para deshacerse de la definición, usa unalias
. La siguiente transcripción muestra todos de estos en acción:
pax> cd ; pwd ; ls -ald footy
/home/pax
drwxr-xr-x 2 pax pax 4096 Jul 28 11:00 footy
pax> footydir=/home/pax/footy ; cd "$footydir" ; pwd
/home/pax/footy
pax> cd ; pwd
/home/pax
pax> alias footy='cd /home/pax/footy' ; footy ; pwd
/home/pax/footy
pax> unalias footy ; footy
bash: footy: command not found