¿Cómo puedo hacer que mi shell siempre se inicie en un determinado directorio que no es mi directorio personal?

20

He intentado poner

cd /Users/my_name/my_directory/structure

en ambos .bashrcy .bash_loginninguno funciona, es decir, cuando abro una nueva ventana de terminal estoy en mi directorio de inicio (/ Users / my_name /).

No hay mensajes de error, solo que no se cd'd en el directorio como se esperaba al iniciar una nueva ventana de terminal.

Michael Durrant
fuente

Respuestas:

5

Como mencionó Gerry, los .bashrcshells de inicio de sesión no lo leen. Las pestañas nuevas son shells de inicio de sesión por defecto en Terminal e iTerm 2. .bash_loginsolo se lee si no hay .bash_profile.

También puede agregar un cdcomando a .bash_profile.

Lri
fuente
38

En primer lugar, si aún no está utilizando iTerm2, le sugiero que descargue este software gratuito como reemplazo de Terminal.app.

Entre muchas otras características adicionales, en las preferencias de iTerm, puede configurar el directorio de trabajo predeterminado para nuevos shells. Encontrará esta configuración en Perfiles - General.

Directorio de trabajo predeterminado de iTerm

La ventaja aquí es que puede establecer diferentes comportamientos para abrir una nueva ventana frente a abrir una nueva pestaña o incluso crear un nuevo panel dividido. Personalmente, me gusta permanecer en el directorio de trabajo actual cuando agrego un panel dividido, por ejemplo.

También puede hacerlo en su script de inicio (aunque encuentro que la solución iTerm es más limpia, o al menos más flexible), pero luego le recomiendo que la use ~/.bash_profile.

~/.bashrcse no de origen automáticamente al abrir una nueva ventana de shell, y ~/.bash_loginsólo se transmite si no ~/.bash_profileestá presente.

Gerry
fuente
1
Siempre obtengo mi .bashrc de mi .bash_profile, así que no tengo que recordar cuál se llama desde dónde.
Cajunluke
@CajunLuke Hago algo bastante similar: github.com/gerryvdm/dotfiles
Gerry
Si modificar el campo "Directorio" del directorio de trabajo no tiene ningún efecto, probablemente necesite cambiar el comando de "comando" a "shell de inicio de sesión" ( fuente ).
duozmo