A conclusão da aba Bash expande “~” para “/ home /

12

Anteriormente, se eu digitasse ~/bi Tab , antes, ele se transformaria em ~/bin . No entanto, hoje ele começou a transformar ~/bi Tab em /home/username/bin .

Eu preferiria ter o primeiro, mas não tenho certeza do que aconteceu ... Eu adicionei um script para editar minha conclusão do bash, mas o removi do meu ~./bashrc e reiniciei o servidor.

Alguém sabe o que causaria isso? Ou como eu mudaria isso de volta?

EDIT Então eu descobri o que pode causar isso ... tem a ver com /etc/bash_completion e coisas assim. Quando eu faço bind -v , ele mostra que a expansão do til está desativada.

Então eu acho que se eu editar isso (meio que como um hack), ele irá embora. Mas isso realmente não satisfaz nada - como essa mudança aconteceu em primeiro lugar? Nunca executei nada como sudo e, depois de vários desligamentos e reinicializações, esse comportamento persiste.

    
por Justin L. 24.01.2013 / 13:46

1 resposta

7

Você não menciona qual distribuição está usando (inclua essa informação em sua pergunta), mas eu vi um comportamento semelhante depois de executar atualizações em meus sistemas.

Meu melhor palpite é quando você executou uma atualização do sistema, ou se ele foi executado automaticamente, o pacote "bash-completion" foi atualizado, o que adicionou esse comportamento. Nos derivados da Red Hat, você pode encontrar a documentação do pacote em /usr/share/doc/PACKAGENAME . No meu /usr/share/doc/bash-completion-1.3/CHANGES , novas alterações são listadas por meio de um formato de registro de alterações.

Em vez de modificar /etc/bash_completion , que poderia ser substituído na próxima atualização do pacote, você pode criar ~/.inputrc para desativar a expansão do til. Eu confirmei que bash_completion-1.3.6 irá honrar isso na minha caixa do Fedora 16.

set expand-tilde off

EDITAR

Sua milhagem pode variar com ~/.inputrc . O Bash tem funções que podem substituir esse comportamento dependendo do que você tenta concluir (por exemplo, um programa versus um arquivo ou diretório). Este discussão no Super User SE aborda uma questão semelhante ao preencher automaticamente um comando vim . Neste caso, o cartaz original resolveu seu problema adicionando uma função personalizada ao seu ~/.bashrc .

    
por 24.01.2013 / 14:22