이름을 입력하여 디렉토리에 cd?


20

예를 들어 'blob'디렉토리가 있고 'blob [return]'을 입력하면 시스템 cd이 blob 디렉토리로 들어 갑니다 .

Linux (Ubuntu)에서는 파일에 추가 shopt -s autocd할 수 .bashrc있지만 OS X에서는 오류가 발생합니다.-bash: shopt: autocd: invalid shell option name

답변:


25

autocdbash 4.0에 추가되었습니다. Homebrew를 사용하여 최신 버전의 bash를 설치 한 후 다음을 사용하여 기본 로그인 쉘을 변경할 수 있습니다 chsh.

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

새로운 로그인 쉘 (또는 터미널 또는 iTerm 2의 기본 탭)을 연 후에 echo $BASH_VERSION는 다음과 같이 인쇄해야합니다 4.2.45(2)-release.

터미널과 iTerm 2는 기본적으로 새 쉘을 로그인 쉘로 열므로 bash는 읽지 ~/.bash_profile만 읽지 않습니다 ~/.bashrc. 당신이 소스를하지 않으면 ~/.bashrc에서 ~/.bash_profile또는 아무것도, 추가 shopt -s autocd~/.bash_profile대신 ~/.bashrc.


1
좋은 대답입니다. Bash 4는 MacPorts에서도 사용할 수 sudo port install bash있습니다. 1 단계로 넘어가도 작동합니다.
ephsmith

나는 위를했다. 나는 bash 4.2.29로 끝나고 / etc / shells를 변경하고 cssh를 수행했지만 기쁨은 없었습니다.
Michael Durrant

@MichaelDurrant 나는 대답을 편집했다. bash -version$ PATH의 첫 번째 버전입니다. 시도 했습니까 echo $BASH_VERSION?
Lri

직접 / usr / local / bin / bash 명령을 실행하면 작동합니다-v4.2를 얻었지만 어떻게 새 창에 대한 기본 쉘을 만들 수 있습니까?
Michael Durrant

1
같은과 열 터미널 응용 프로그램 세트 @MichaelDurrant인가 /usr/bin/login또는 login -fp $USER환경 설정에서는?
Lri

2

의 출력은 shopt -p여기에 몇 가지 도움이 될 수 있습니다. 설정 가능한 옵션 목록을 인쇄합니다. 안타깝게도 사자에 대해서는 그중 하나 autocd아닙니다 (아래 발췌 참조).

위의 Lauri의 답변 편집 에는 포함하도록 셸을 업데이트하는 솔루션이 있습니다.autocd

$ 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.