cd a un directorio escribiendo su nombre?

20

Por ejemplo, si existe un directorio 'blob' y simplemente escribo 'blob [return]', entonces el sistema cdestá en el directorio blob para mí.

En Linux (Ubuntu) puedo agregar shopt -s autocda mi .bashrcarchivo, pero en OS X esto da un error:-bash: shopt: autocd: invalid shell option name

Michael Durrant
fuente

Respuestas:

25

autocdfue agregado en bash 4.0. Puede instalar una versión más nueva de bash con Homebrew y luego cambiar el shell de inicio de sesión predeterminado con chsh:

brew install bash;echo /usr/local/bin/bash|sudo tee -a /etc/shells;chsh -s /usr/local/bin/bash

Después de abrir un nuevo shell de inicio de sesión (o una pestaña por defecto en Terminal o iTerm 2), echo $BASH_VERSIONdebería imprimir algo así 4.2.45(2)-release.

Terminal e iTerm 2 abren nuevos shells como shells de inicio de sesión de forma predeterminada, por lo que bash lee ~/.bash_profilepero no ~/.bashrc. Si no lo hace fuente ~/.bashrcde ~/.bash_profileni nada, añadir shopt -s autocdal ~/.bash_profilelugar de ~/.bashrc.

Lri
fuente
1
Gran respuesta. Bash 4 también está disponible en MacPorts: la sumisión sudo port install bashal paso 1 también funciona.
ephsmith
Hice lo anterior. Terminé con bash 4.2.29 e hice los cambios en / etc / shells e hice el cssh pero no me alegro
Michael Durrant
@MichaelDurrant Edité la respuesta. bash -versionsería la primera versión en $ PATH. ¿Lo intentaste echo $BASH_VERSION?
Lri
funciona si ejecuto el comando directamente / usr / local / bin / bash - obtengo v4.2 pero ¿cómo hago que mi shell predeterminado para una nueva ventana?
Michael Durrant
1
@MichaelDurrant ¿Está su aplicación de terminal configurada para abrirse con algo como /usr/bin/logino login -fp $USERen las preferencias?
Lri
2

La salida de shopt -ppuede ser de alguna ayuda aquí. Imprime una lista de opciones configurables. Lamentablemente, en Lion, noautocd es uno de ellos (ver extracto a continuación).

Editar La respuesta de Lauri anterior tiene una solución para actualizar su shell para incluirautocd

$ shopt -p
shopt -u cdable_vars
shopt -u cdspell
shopt -u checkhash
shopt -s checkwinsize
shopt -s cmdhist
shopt -u compat31
shopt -u dotglob
shopt -u execfail
shopt -s expand_aliases
shopt -u extdebug
shopt -u extglob
shopt -s extquote
shopt -u failglob
shopt -s force_fignore
shopt -u gnu_errfmt
shopt -u histappend
shopt -u histreedit
shopt -u histverify
shopt -s hostcomplete
shopt -u huponexit
shopt -s interactive_comments
shopt -u lithist
shopt -s login_shell
shopt -u mailwarn
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nocasematch
shopt -u nullglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
shopt -u shift_verbose
shopt -s sourcepath
shopt -u xpg_echo
ephsmith
fuente