Esiste un carattere jolly bash per cambiare directory?


4

Quando uso la riga di comando di Bash, ad esempio, posso passare a una directory usando ...

cd /volumes

Tuttavia vorrei digitare ...

cd /vol*

ma non funziona. C'è un modo per navigare nelle directory usando i caratteri jolly?


1
Funziona per me
Emil Vikström il

Dirai di più su ciò che stai cercando di fare? Che comportamento ti aspetti quando ci sono più directory corrispondenti al nome /vol*?
Adam Monsen,

Cosa ti aspetteresti cd /vol*di fare?
stakx,

A parte questo, potresti usare iTerm, è un'alternativa molto migliore al terminale osx predefinito. iterm.sourceforge.net Permette il completamento delle schede e l'esempio sopra dovrebbe funzionare senza problemi.
에이 바 4

@AvaGailliot bash fornisce il completamento della scheda indipendentemente dal programma terminale in esecuzione. Vedi la risposta di Gordon Davisson sulla configurazione di bash per ignorare il caso di globbing e completamento della scheda.
Doug Harris,

Risposte:


6

Mac OS per impostazione predefinita utilizza un file system senza distinzione tra maiuscole e minuscole. cd /volumesè equivalente a cd /Volumes, ma bash non può glob vol*: the trycd /Vol*


4

Come ha detto @William Pursell, ciò è dovuto alla cartella denominata / Volumes, non / volume; il filesystem OS X non fa distinzione tra maiuscole e minuscole, quindi ignora la differenza, ma bash fa distinzione tra maiuscole e minuscole e supera la differenza.

Ma puoi cambiare il comportamento predefinito di bash: per fare in modo che non facciano distinzioni maiuscole / minuscole di modelli di file, aggiungi il comando shopt -s nocaseglobai tuoi file ~ / .bashrc e ~ / .bash_profile (è necessario in entrambi, quindi l'opzione è impostata in entrambe le shell di login e subshells). Se vuoi che anche il completamento del nome file funzioni nonostante le discrepanze del caso, aggiungi set completion-ignore-case onal tuo file ~ / .inputrc o aggiungi bind "set completion-ignore-case on"ai tuoi file ~ / .bashrc e ~ / .bash_profile.


0

Digitando:

cd /vol*

funziona benissimo . Anche se si /vol*espande in più directory, bashutilizzerà la prima e ignorerà il resto. Cosa non funziona esattamente per te?


2
Naturalmente di solito digiti cd /vol<TAB>e usi il completamento automatico ...
Paul R

@larsks Ottengo -bash: cd: / vol *: Nessun file o directory simile quando lo digito. Sto usando il Terminale su Mac OS. cd / volume cambia bene in quella directory.
John Livermore,

@PaulR - Usando Mac OS, colpire la scheda non completa la linea per me. L'ho usato in passato con successo su un'altra macchina Unix.
John Livermore,

@John: deve essere qualcosa di divertente con la tua configurazione bash allora - funziona per me su tutte le versioni attuali / recenti di Mac OS X - Mi sembra di ricordare che le versioni molto precedenti di Mac OS X necessitavano di alcune modifiche per farlo funzionare però.
Paul R
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.