A conclusão da tabulação não funciona para argumentos de arquivo para determinados comandos

0

Eu tenho um diretório contendo uma imagem de disco, vamos chamá-lo de "image.dd". Na realidade, é um nome muito mais longo, portanto, o desejo de tabela completa o nome, digitando o primeiro caractere e batendo guia para obter o resto. Existem apenas alguns arquivos no diretório, cada um iniciando com uma única letra.

Se eu digitar ls i<TAB> , o comando será concluído corretamente em ls image.dd .

Mas se eu digitar fdisk -l i<TAB> , nada acontece. Isso é muito chato. Tenho a impressão de que a conclusão da tabulação está bisbilhotando o meu comando e vendo a parte "fdisk" e dizendo: "Ah, você não pode fdisk um arquivo regular, então eu vou ignorar sua requisição para autocompletar o arquivo, mesmo que está realmente lá. "

É claro que quando eu digito manualmente o nome que ele funciona, eu posso fdisk um arquivo quando é uma imagem de disco, então como posso fazer a conclusão da tabulação funcionar?

Usando o Ubuntu 16.04, a versão bash é a 4.3.42.

    
por Michael 25.01.2017 / 19:11

1 resposta

2

As regras completas para o fdisk são armazenadas no arquivo /usr/share/bash-completion/completions/fdisk . As regras lá definem que ele se expandirá para bloquear dispositivos. Para sobrescrever esta configuração no seu ambiente atual - você poderia fazer:

complete -F _filedir_xspec fdisk

Você pode adicionar isso ao seu arquivo .bashrc .

    
por jhilmer 27.01.2017 / 15:30