A conclusão da guia Bash expande “~” para “/ home / ___” quando não era antes

13

Anteriormente, se eu digitasse ~/biTabantes, ele se tornaria ~/bin. No entanto, hoje ele começou a girar ~/biTabem /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 ~./bashrce reiniciei o servidor.

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

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

Então eu acho que se eu editar isso (como um hack), ele desaparecerá. Mas isso realmente não satisfaz nada - como essa mudança aconteceu em primeiro lugar? Eu nunca executei nada como sudoe, após vários desligamentos e reinicializações, esse comportamento persiste.

Justin L.
fonte

Respostas:

8

Você não menciona a distribuição que está usando (inclua essas informações na sua pergunta), mas vi um comportamento semelhante após executar atualizações nos meus sistemas.

Meu melhor palpite é que quando você executava uma atualização do sistema ou, se executada automaticamente, o pacote "bash-complete" foi atualizado, adicionando 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 através de um formato de log de alterações.

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

set expand-tilde off

EDITAR

Sua milhagem pode variar de acordo com ~/.inputrc. O Bash possui funções que podem substituir esse comportamento, dependendo do que você tenta concluir (por exemplo, um programa versus um arquivo ou diretório). Esta discussão no Super User SE aborda uma questão semelhante ao preencher automaticamente um vimcomando. Nesse caso, o pôster original resolveu seu problema adicionando uma função personalizada à dele ~/.bashrc.

George M
fonte
1
O último bit também depende da distribuição. Algumas distribuições (por exemplo, Gentoo) realmente fazem a coisa certa e não sobrescrevem os arquivos /etcse eles foram alterados.
njsg
1
Os derivados da Red Hat também o fazem. O arquivo do xxxarquivo de configuração de substituição é chamado xxx.rpmnewse as alterações na configuração não forem críticas; se as alterações na configuração forem realmente necessárias, o original será renomeado xxx.rpmsavee xxxserá o arquivo do pacote.
vonbrand
O expand-til não funciona, acabei excluindo o código que fez a expansão do meu computador. Provavelmente ocorrerá falhas nas atualizações do sistema, mas: |
Justin L.