ls trabalhando estranhamente

2

Estou acostumado a digitar ls Doc e a tabular algumas vezes para concluir a ls Documents/ .

No entanto, agora meu ls está concluindo a mesma instrução para ls Documents com um espaço no final de Documentos, para que eu possa usá-lo para encontrar meu caminho na árvore de arquivos.

Isso começou a acontecer hoje. Alguma idéia do porquê e mais importante, como corrigir o problema?

Editar

Isso acontece para todos os diretórios. Documentos foi um exemplo. $CDPATH está vazio.

complete | grep ls retorna complete -o default -F _longopt ls como a única resposta relevante.

locate Documents mostra coisas em / usr / lib /

    
por EricR 21.02.2012 / 22:31

2 respostas

2

Existem algumas coisas que podem estar acontecendo.

1) faça complete | grep ls e veja se há alguma conclusão especial para ls. Pode haver código que está mudando o que você espera que a conclusão faça

2) do echo $CDPATH Esta variável é uma lista de diretórios especiais que o bash irá procurar, fora do diretório local, por cd . Eu não tenho certeza se eu uso isso, mas vale a pena tentar.

Você também pode tentar locate Documents e ver se encontrou um diretório que possa estar tentando referenciar.

EDITAR

Parece que você está usando o pacote bash_completion. Ele tenta executar a função _longopt quando você solicita a conclusão. Experimente complete -f ls e veja se ls agora se comporta conforme o esperado.

    
por 21.02.2012 / 23:49
1

Com base em sua descrição, o único cenário que faz sentido é que algum tempo no Documentos passado era um link simbólico que apontava para algum diretório, e hoje Documentos ainda é um link simbólico, mas aponta para um dos seguintes:

  1. algo que não é um diretório.
  2. algo que não existe mais.
  3. algo que você não pode acessar o suficiente para determinar se é um diretório ou não.
por 21.02.2012 / 23:48