No Linux, por que a conclusão da guia de diretório adiciona um \ a um caminho que começa com ~

3

No meu trabalho scientific linux 6.2 machine, muitas vezes começo a digitar em um diretório como abaixo e uso a conclusão de tabulação para finalizá-lo:

~/mydir

Mas quando eu clico em tab, isso se torna, por exemplo,

\~/mydirectory/

Com uma barra extra no início. Por que isso e posso evitá-lo? É uma dor, porque usar cd, etc. não funciona com a barra extra, eu tenho que começar a partir do diretório home real, que é algo como

/home/username/

Nestes PCs.

Editar

Na verdade, esse problema não apareceu em todos os diretórios, apenas um em particular, que eu não percebi quando perguntei. A causa do problema é dada na minha resposta à pergunta.

    
por crobar 27.10.2012 / 11:55

3 respostas

2

Eu acidentalmente criei um diretório chamado ~ em meu diretório pessoal. Esta foi a causa raiz dos problemas. Remover isso resolveu-os.

    
por 01.11.2012 / 15:21
2

O Linux não aplica nenhum preenchimento de guias. O shell faz.

As caixas têm um sistema de conclusão mal configurado, ou talvez elas se apliquem mal, por exemplo, zsh completion to bash ou vice-versa.

  1. Tente iniciar outro shell (bash, zsh) e terceirizar / etc / profile * para esse shell
  2. faça login sem um perfil. ssh host.com bash --noprofile --norc

Isso ajudará você a descobrir onde está o problema. Estou confiante de que o problema está nos arquivos de configuração (perfil) do host ou usuário e que isso não é um problema com o shell.

    
por 27.10.2012 / 14:57
1

Leia esta postagem no blog sobre a instalação de um utilitário chamado bash-completion é mais poderoso que o código de conclusão de tabulação padrão e é mais flexível.

A conclusão do comando pelo caminho

Alternativamente, quando você emite o comando:

cd

Sem parâmetros você irá cd para o seu diretório home, depois disso você pode simplesmente começar a digitar:

mydir

Quando você clicar na guia, o preenchimento automático será alterado para

mydirectory
    
por 27.10.2012 / 13:52