cd in una directory digitandone il nome?


20

Ad esempio, se esiste una directory 'BLOB' e digito semplicemente 'BLOB [return]', il sistema va cdnella directory BLOB per me.

In Linux (Ubuntu) posso aggiungere shopt -s autocdal mio .bashrcfile, ma su OS X questo dà un errore:-bash: shopt: autocd: invalid shell option name

Risposte:


25

autocdè stato aggiunto in bash 4.0. È possibile installare una versione più recente di bash con Homebrew e quindi modificare la shell di accesso predefinita con chsh:

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

Dopo aver aperto una nuova shell di accesso (o una scheda per impostazione predefinita in Terminal o iTerm 2), echo $BASH_VERSIONdovrebbe essere stampato qualcosa di simile 4.2.45(2)-release.

Terminal e iTerm 2 aprono nuove shell come shell di login per impostazione predefinita, quindi bash legge ~/.bash_profilema non ~/.bashrc. Se non lo fai fonte ~/.bashrcda ~/.bash_profileo nulla, aggiungi shopt -s autocdal ~/.bash_profileposto di ~/.bashrc.


1
Bella risposta. Bash 4 è disponibile anche in MacPorts: funziona anche il sottotitolo sudo port install bashnel passaggio 1.
ephsmith,

Ho fatto quanto sopra. Ho finito con la bash 4.2.29 e ho apportato le modifiche a / etc / shells e ho fatto il cssh ma nessuna gioia
Michael Durrant,

@MichaelDurrant Ho modificato la risposta. bash -versionsarebbe la prima versione su $ PATH. Ci hai provato echo $BASH_VERSION?
Lri,

funziona se eseguo direttamente il comando / usr / local / bin / bash - ottengo v4.2 ma come faccio a rendere la mia shell predefinita per una nuova finestra?
Michael Durrant,

1
@MichaelDurrant La tua applicazione terminale è impostata per aprirsi con qualcosa di simile /usr/bin/logino login -fp $USERnelle preferenze?
Lri,

2

L'output di shopt -ppuò essere di qualche aiuto qui. Stampa un elenco di opzioni impostabili. Purtroppo, su Lion, nonautocd è uno di questi (vedi estratto di seguito).

Modifica La risposta di Lauri sopra ha una soluzione per l'aggiornamento della shell da includereautocd

$ 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.