cd ke direktori dengan mengetikkan namanya?

20

Sebagai contoh jika ada direktori 'gumpalan' dan saya cukup ketik 'gumpalan [kembali]' maka sistem cdmenjadi direktori gumpalan bagi saya.

Di Linux (Ubuntu) saya dapat menambahkan shopt -s autocdke .bashrcfile saya , tetapi pada OS X ini memberikan kesalahan:-bash: shopt: autocd: invalid shell option name

Michael Durrant
sumber

Jawaban:

25

autocdtelah ditambahkan di bash 4.0. Anda dapat menginstal versi bash yang lebih baru dengan Homebrew dan kemudian mengubah shell login default dengan chsh:

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

Setelah Anda membuka shell login baru (atau tab secara default di Terminal atau iTerm 2), echo $BASH_VERSIONharus mencetak sesuatu seperti 4.2.45(2)-release.

Terminal dan iTerm 2 membuka shell baru sebagai shell login secara default, jadi bash membaca ~/.bash_profiletetapi tidak ~/.bashrc. Jika Anda tidak sumber ~/.bashrcdari ~/.bash_profileatau apapun, tambahkan shopt -s autocdke ~/.bash_profilebukannya ~/.bashrc.

Lri
sumber
1
Jawaban yang bagus Bash 4 juga tersedia di MacPorts: subtitle sudo port install bashke langkah 1 Anda juga berfungsi.
ephsmith
Saya melakukan hal di atas. Saya berakhir dengan bash 4.2.29 dan saya membuat perubahan pada / etc / shells dan melakukan cssh tetapi tidak ada sukacita
Michael Durrant
@MichaelDurrant Saya mengedit jawabannya. bash -versionakan menjadi versi pertama di $ PATH. Apakah kamu sudah mencoba echo $BASH_VERSION?
Lri
ini berfungsi jika saya menjalankan perintah secara langsung / usr / local / bin / bash - saya mendapatkan v4.2 tetapi bagaimana saya membuat shell default saya untuk jendela baru?
Michael Durrant
1
@MichaelDurrant Apakah aplikasi terminal Anda diatur untuk dibuka dengan sesuatu seperti /usr/bin/loginatau login -fp $USERdi preferensi?
Lri
2

Output dari shopt -pdapat membantu di sini. Ini mencetak daftar opsi yang bisa diatur. Sayangnya, tentang Lion, autocdadalah tidak salah satu dari mereka (lihat kutipan di bawah).

Sunting jawaban Lauri di atas memiliki solusi untuk memperbarui shell Anda untuk disertakanautocd

$ 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
sumber