4 votos

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

Mi problema es: siempre que estoy codificando, 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 utilizando alias . Así que sería:

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

Mi pregunta es, ¿dónde debo poner este alias? Dentro de /etc/bashrc ? ¿O debo crear un archivo llamado ~/.profile y colocarlo allí? ¿Dónde debo colocarlo?

4voto

Fuzzy Purple Monkey Puntos 702

Mantengo los alias en ~/.bash_profile .

Terminal y iTerm 2 abren nuevos shells como shells de acceso por defecto. Cuando se invoca a bash como shell de inicio de sesión interactivo, se lee ~/.bash_profile pero no ~/.bashrc . Los emuladores de terminal de otras plataformas suelen abrir nuevos shells como shells que no son de acceso, así por ejemplo bash lee ~/.bashrc pero no ~/.bash_profile . Los usuarios de OS X suelen utilizar ~/.bash_profile como el archivo de configuración personal correspondiente a ~/.bashrc en otras plataformas, pero también es posible obtener ~/.bashrc de ~/.bash_profile o para decirle a Terminal o a iTerm 2 que abran nuevos shells como shells que no son de acceso.

Si ambos ~/.profile y ~/.bash_profile existen, bash sólo lee ~/.bash_profile cuando se invoca como un shell de inicio de sesión interactivo. ~/.profile también es utilizado por otros shells y programas que pueden no entender las mismas opciones de configuración que bash.

/etc/bashrc es propiedad de Root, y podría ser reemplazado cuando actualices OS X.

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

2voto

Por lo general, las definiciones de alias se colocan en el mismo archivo que el $PATH definiciones que probablemente sea ~/.bashrc .


Técnicamente hablando, un alias no es un acceso directo a una carpeta, sino a cualquier comando del 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 son reemplazados tal cual por el intérprete de comandos, por lo que si ejecuta

heal downloadedFile.dmg

se amplía a

xattr -d com.apple.quarantine downloadedFile.dmg

y ejecutado después. Si necesitas más flexibilidad con los parámetros, puedes buscar funciones de shell (pero eso probablemente debería ir en otra pregunta).

1voto

Dex Puntos 176

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

1voto

tjt263 Puntos 388

La respuesta corta es: (en general)

Añádelo a ~/.bash_profile

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

NOTA: No debería haber ningún espacio entre el alias/variable y el signo de igualdad ("=") y el valor. Si su valor tiene espacios, entonces todo el valor debe ser puesto entre comillas.

Una respuesta mejor es: (probablemente)

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

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

NOTA: Que las variables de entorno se acceden anteponiendo el signo de dólar ("$") . Sin embargo, al ser definido, el signo de dólar ("$") debe omitirse.

Una respuesta alternativa es: (posiblemente)

Enlaces simbólicos . ALIAS. Symlinks . {FKA. Alias . (Mac OS)}. {BKA. Atajos . (SO Windows)}.

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

NOTA: Los enlaces simbólicos se indican a veces anteponiendo el símbolo signo de ampersand ("@") .

1voto

Farinha Puntos 5518

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

  • ~/.bash_profile debería ser super-simple y sólo cargar .profile y .bashrc (en ese orden)

  • ~/.profile tiene las cosas NO relacionadas específicamente con bash, como variables de entorno (PATH y amigos)

  • ~/.bashrc tiene cualquier cosa que quieras en una línea de comandos interactiva. El símbolo del sistema, la variable EDITOR, los alias de bash para mi uso

    Algunas otras notas:

  • Cualquier cosa que deba estar disponible para las aplicaciones gráficas O para sh (o bash invocado como sh) DEBE estar en ~/.profile

  • ~/.bashrc no debe mostrar nada

  • Cualquier cosa que deba estar disponible sólo para los shells de inicio de sesión debe ir en ~/.perfil

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X