GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo hacer un alias para un camino largo?

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

Linux
  1. ¿Cómo 'alias Sudo !!'?

  2. ¿Cómo obtener la finalización de Bash para alias de comando?

  3. ¿Cómo deshabilitar un alias en Bash para un solo comando?

  4. ¿Cómo agrego un nombre de dominio de alias para mi sitio web?

  5. Cómo hacer una VPN

Cómo crear alias para personalizar comandos en Debian

Cómo crear un enlace a un directorio

¿Cómo hacer el paquete de prueba de Travis CI para Linux, OS X, Windows?

¿Cómo hacer que `ls` coloree su salida de forma predeterminada, sin configurar un alias?

Cómo establecer la ruta para los comandos sudo

¿Cómo configurar PATH para todos los usuarios en Debian?