
Como posso desabilitar a conclusão do bash para tudo, exceto caminhos do sistema de arquivos?
Mas mesmo para caminhos, não quero nada interpretado.
Por exemplo, se eu fizer:
# sh -f fo<tab>
e há um arquivo foo.txt, ele não funciona, mas se o arquivo fosse foo.sh funcionaria. Presumo que o bash esteja tentando me "ajudar" aqui. Eu uso o Linux há muito tempo e não quero que a conclusão do bash faça nada que presuma saber o que estou pensando. Não quero que ele procure arquivos zip ou adivinhe nomes de host. Eu só quero a conclusão simples do nome do caminho e nada mais.
Responder1
bash
possui um comando interno complete
que controla o comportamento de preenchimento automático do shell atual. É possível que sua distribuição ou administrador de sistema tenha configurado a configuração de shells interativos colocando esses complete
comandos nos arquivos de inicialização configurados (tradicionalmente /etc/profile
, /etc/bash.bashrc
, ~/bash_profile
, ~/bash_login
, ~/.profile
, ~/.bashrc
).
Para desabilitar permanentemente esse recurso, você pode editar esses arquivos para não chamar esses complete
comandos (ou para chamar apenas aqueles que você gosta).
Para desativar o preenchimento automático "inteligente" apenas para uma instância da sessão interativa, execute
complete -r
naquela sessão.