Hacer accesos directos a directorios a través de terminal

4

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 crear un acceso directo a la carpeta usando alias . Así sería:

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

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

    
pregunta Thi G. 23.08.2013 - 20:05

5 respuestas

4

Mantengo los alias en ~/.bash_profile .

Terminal e iTerm 2 abren nuevos shells como shells de inicio de sesión de forma predeterminada. Cuando se invoca a bash como shell de inicio de sesión interactivo, lee ~/.bash_profile pero 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 lo que, por ejemplo, bash lee ~/.bashrc pero no ~/.bash_profile . Los usuarios de OS X a menudo usan ~/.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 decirle a Terminal o iTerm 2 que abran nuevos shells como no. shells de inicio de sesión.

Si existen tanto ~/.profile como ~/.bash_profile , bash solo lee ~/.bash_profile cuando se invoca como un shell de inicio de sesión interactivo. ~/.profile también es usado 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.

Consulte man bash|less +^INVOCATION o enlace para obtener más información.

    
respondido por el user495470 23.08.2013 - 21:55
1

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

Hablando técnicamente, un alias no es un acceso directo a una carpeta sino para 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 hacer tu vida más fácil. Los alias se reemplazan como están 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 incluir otra pregunta).

    
respondido por el nohillside 23.08.2013 - 20:33
1

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

    
respondido por el Bek 23.08.2013 - 20:32
1

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

  • ~ / .bash_profile debe ser super simple y simplemente cargar .profile y .bashrc (en ese orden)

  • ~ / .profile tiene el material NO relacionado específicamente con bash, como variables de entorno (PATH y amigos)

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

    Algunas otras notas:

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

  • ~ / .bashrc no debe mostrar nada

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

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

respondido por el calum_b 27.08.2015 - 19:19
1

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, debe poner todo el valor entre comillas.

Una mejor respuesta es: (probablemente)

En su lugar, intente establecer una variable de entorno. Probablemente esto sea más parecido a 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 ante el signo de dólar ("$") . Sin embargo, cuando se define, se debe omitir el signo de dólar ("$") .

Una respuesta alternativa es: (posiblemente)

Symbolic-Links . AKA. Symlinks . {FKA. Alias . (Mac OS)}. {BKA. Accesos directos . (Sistema operativo Windows)}.

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

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

    
respondido por el tjt263 27.08.2015 - 14:39

Lea otras preguntas en las etiquetas