Hacer accesos directos a directorios a través de la terminal

Mi problema es: cada vez que estoy programando, trabajo dentro de carpetas que están dentro de otras carpetas y es un largo camino para escribir:

cd /folder1/folder2/.../folderN

Sé que es posible hacer un acceso directo a la carpeta usando alias. Así sería:

alias ep="cd /Users/thi/Dropbox/CurrentProject"

Mi pregunta es, ¿dónde debo poner este alias? dentro /etc/bashrc? ¿ O debería crear un archivo llamado ~/.profiley colocarlo allí? ¿Dónde debo ponerlo?

Creo que lo que te llevaría al siguiente nivel es aprender sobre cómo completar el shell. La finalización de bash es bastante básica, pero zsh tiene finalización extensible. Por ejemplo ls -l P/H/O/Cla<tab>, se expande als -l Projects/Home/OpenGL/Clams

Respuestas (5)

Mantengo alias en ~/.bash_profile.

Terminal e iTerm 2 abren nuevos shells como shells de inicio de sesión de forma predeterminada. Cuando se invoca bash como un shell de inicio de sesión interactivo, lee ~/.bash_profilepero no ~/.bashrc. Los emuladores de terminal en otras plataformas a menudo abren nuevos shells como shells que no son de inicio de sesión, por ejemplo, bash lee ~/.bashrcpero no ~/.bash_profile. Los usuarios de OS X a menudo lo usan ~/.bash_profilecomo el archivo de configuración personal correspondiente a ~/.bashrcotras plataformas, pero también es posible obtener ~/.bashrco ~/.bash_profiledecirle a Terminal o iTerm 2 que abran nuevos shells como shells sin inicio de sesión.

Si ambos ~/.profiley ~/.bash_profileexisten, bash solo lee ~/.bash_profilecuando se invoca como un shell de inicio de sesión interactivo. ~/.profiletambién lo utilizan otros shells y programas que pueden no comprender las mismas opciones de configuración que bash.

/etc/bashrces propiedad de root y puede ser reemplazado cuando actualice OS X.

Consulte man bash|less +^INVOCATIONo https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html para obtener más información.

Por lo general, coloca las definiciones de alias en el mismo archivo que sus $PATHdefiniciones, lo que probablemente sea ~/.bashrc.


Técnicamente hablando, un alias no es un acceso directo a una carpeta, sino a cualquier comando de shell. Así que también puedes tener cosas como

alias heal='xattr -d com.apple.quarantine'
alias la='ls -lFa'
alias ll='ls -lF'
alias ls='ls -FG'
alias show-path='echo -e ${PATH//:/\\n}'

para hacerte la vida más fácil. Los alias se reemplazan tal cual por el shell, por lo que si ejecuta

heal downloadedFile.dmg

se expande a

xattr -d com.apple.quarantine downloadedFile.dmg

y ejecutado después. Si necesita más flexibilidad con los parámetros, es posible que desee ver las funciones de shell (pero eso probablemente debería ir a otra pregunta).

No soy un experto en bash, pero creo que deberías poner tu alias dentro de .bashrc en tu directorio de inicio.

Esta respuesta resume claramente lo que idealmente pertenece a cada uno de ~/.bashrc, ~/.profiley ~/.bash_profile. En resumen:

  • ~/.bash_profile debe ser súper simple y solo cargar .profile y .bashrc (en ese orden)

  • ~/.profile tiene cosas que NO están específicamente relacionadas con bash, como variables de entorno (RUTA y amigos)

  • ~/.bashrc tiene todo lo que desea en una línea de comando interactiva. Símbolo del sistema, variable EDITOR, alias de bash para mi uso

    Algunas otras notas:

  • Todo lo que debería estar disponible para aplicaciones gráficas O para sh (o bash invocado como sh) DEBE estar en ~/.profile

  • ~/.bashrc no debe generar nada

  • Todo lo que debería estar disponible solo para los shells de inicio de sesión debe ir en ~/.profile

  • Asegúrese de que ~/.bash_login no exista.

La respuesta corta es: (generalmente)

añádelo a~/.bash_profile

echo 'alias ep="cd $HOME/Dropbox/CurrentProject"' >> ~/.bash_profile

NOTA: No debe haber ningún espacio entre el alias/variable y el signo igual ("=") y el valor. Si su valor tiene espacios, entonces el valor completo se debe poner entre comillas.

Una mejor respuesta es: (probablemente)

Intente establecer una variable de entorno, en su lugar. Esto es probablemente más como lo que realmente quieres.

echo 'export EP="$HOME/Dropbox/CurrentProject"' >> ~/.bash_profile
echo 'alias ep="cd $EP"' >> ~/.bash_profile

NOTA: Se accede a las variables de entorno anteponiendo el signo de dólar ("$") . Sin embargo, al definirse, se debe omitir el signo de dólar ("$") .

Una respuesta alternativa es: (posiblemente)

Enlaces simbólicos . también conocido como Enlaces simbólicos . {FKA. alias _ (Mac OS)}. {BKA. Atajos _ (SO Windows)}.

ln -s <dirA/subB/fileC_in> <dirX/subY/symbZ_out>

NOTA: los enlaces simbólicos a veces se indican anteponiendo el signo ampersand ("@") .

Consulte el canal de chat del sitio si desea analizar el bloqueo en esta publicación y futuras ediciones.