Salvando as possibilidades de conclusão da tabulação em um arquivo

5

Em vez de exibir todas as possibilidades na tela do terminal, como em:

$ ls /etc/<TAB>
Display all 230 possibilities? (y or n)

Eu quero salvar todas as possibilidades em um arquivo.

ls /etc/ > file.txt nem sempre funciona. O apt-get é um exemplo:

$ apt-get <TAB>
autoclean        check            install          update
autoremove       clean            purge            upgrade
build-dep        dist-upgrade     remove           
changelog        dselect-upgrade  source           

Estou procurando um comando como tabcompletions 'ls /etc/' , que gera todas as possibilidades, para que eu possa executar um comando como o abaixo, que compara as possibilidades de conclusão da tabulação para dois comandos:

diff <(tabcompletions 'ls ') <(tabcompletions 'cd ')

Isso é possível?

    
por musa 27.09.2011 / 15:35

2 respostas

5

No seu ~/.bashrc você provavelmente tem algo assim:

if [ -f /etc/bash_completion ] && ! shopt -oq posix
then
    source /etc/bash_completion
fi

Agora, é para continuar pesquisando e o cabeçalho de _quote_readline_by_ref contém a dica necessária:

compgen -f /etc/

Traçando isso de volta, verifica-se que (via type compgen ) o compgen é um "shell builtin", o que significa que ele deve aparecer em man bash :

compgen [option] [word]
       Generate possible completion matches for word according to the options ...
    
por 27.09.2011 / 16:23
3

Embora, um método bruto, você poderia usar o comando script

$ script -a lsdiff
Script started, file is lsdiff
$ ls <TAB>
a b c ...
$ <Ctrl-D>
Script done, file is lsdiff

Repita o procedimento acima para cd e compare a diferença.

    
por 27.09.2011 / 23:31