shopt -s nocaseglob não está funcionando no Ubuntu

5

Nome do arquivo insensível ao caso globbing não está funcionando no bash no Ubuntu 11.04 64bit. As opções de shell especificadas em .bashrc são as seguintes:

shopt -s nocaseglob 
shopt -s nocasematch

shopt também mostra que nocaseglob e nocasematch são on . Mas para uma mudança de diretório ou abertura de um arquivo, ele não funciona no modo de insensibilidade.

Eu gostaria de verificar se alguma outra opção é necessária para habilitar o globbing de nomes de arquivo insensíveis a maiúsculas e minúsculas.

    
por padmakumar 12.07.2011 / 13:31

1 resposta

7

Você está realmente fazendo globbing, ou seja, expansão de curingas? Por exemplo, suponha que você tenha um diretório chamado Foobar . Então

cd foobar

não faz globbing, porque não há caractere curinga. Quando você especifica um nome de arquivo exatamente, cabe ao aplicativo decidir o que fazer com ele e, como nomes de arquivos unix fazem distinção entre maiúsculas e minúsculas, o aplicativo não abrirá um arquivo chamado Foobar se você disser para abrir um arquivo chamado foobar .

Por outro lado,

cd foo*

mudará para o diretório Foobar (supondo que não haja outra correspondência), se você tiver definido a opção nocaseglob .

Você também pode tornar a conclusão diferencia maiúsculas de minúsculas. Coloque set completion-ignore-case on em ~/.inputrc ou

bind 'set completion-ignore-case on'

em ~/.bashrc . Então, depois de inserir cd foo e pressionar Tab , o shell irá completar Foobar .

    
por 12.07.2011 / 14:27