CD в ​​каталог, ввівши його ім’я?


20

Наприклад, якщо в каталозі "blob" існує, а я просто набираю "blob [return]", то система cdпереходить у каталог blob для мене.

У Linux (Ubuntu) я можу додати shopt -s autocdдо свого .bashrcфайлу, але в OS X це дає помилку:-bash: shopt: autocd: invalid shell option name

Відповіді:


25

autocdдодано в bash 4.0. Ви можете встановити нову версію bash з Homebrew, а потім змінити стандартну оболонку входу за допомогою chsh:

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

Після відкриття нової оболонки для входу (або вкладку за замовчуванням у Terminal або 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

Я зробив вищесказане. Я закінчив баш 4.2.29, і я вніс зміни в / etc / shell і зробив cssh, але ніякої радості
Michael Durrant

@MichaelDurrant Я відредагував відповідь. bash -versionбуде першою версією на $ PATH. Ви пробували echo $BASH_VERSION?
Лрі

вона працює, якщо я запускаю команду безпосередньо / usr / local / bin / bash - я отримую v4.2, але як зробити цю оболонку за замовчуванням для нового вікна?
Майкл Дюрант

1
@MichaelDurrant Чи встановлено, що ваш додаток для терміналів відкриється чимось на зразок /usr/bin/loginабо login -fp $USERв налаштуваннях?
Лрі

2

Тут shopt -pможе допомогти вихід . Він друкує список параметрів, які можна встановити. На жаль, Лев autocd- не один із них (див. Уривок нижче).

Редагувати відповідь Лаурі вище , це рішення для оновлення вашої оболонки, щоб включити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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.