Como eu redireciono a saída de conclusão do comando?

25

Na linha de comando, posso redirecionar ou canalizar a saída de um comando para um arquivo ou outro comando usando o operador > ou | após o comando. Eu me deparei com uma situação menos padrão que eu gostaria de redirecionar a saída para um arquivo, mas eu não pareço ter a oportunidade de redirecioná-lo:

Quando em um novo terminal,

[chiliNUT ~]$

se eu pressionar Tab sem digitar nada primeiro, será perguntado

display all 1725 possibilities? (y or n)

e se eu digitar y , recebo uma longa lista de comandos diferentes. Como posso redirecionar ou canalizar essa saída para um arquivo? Eu não pareço ter a chance de digitar > myfile.txt em qualquer lugar.

Usando o lançamento do CentOS 6.4 (Final) .

    
por chiliNUT 02.05.2014 / 04:26

1 resposta

26

Você pode usar o arquivo compgen :

compgen: compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat]
[-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix]
[-S suffix] [word]

    Display possible completions depending on the options.

    Intended to be used from within a shell function generating possible
    completions.  If the optional WORD argument is supplied, matches against
    WORD are generated.

    Exit Status:
    Returns success unless an invalid option is supplied or an error occurs.

TAB no prompt listaria comandos, construções de shell, palavras-chave, aliases e funções. Então você poderia dizer:

compgen -cbka -A function | grep '^y' > myfile.txt

para obter todas as opções que você vê ao digitar y TAB no prompt do shell no arquivo myfile.txt .

Elimine o grep pipeline para obter todos os possíveis comandos, funções, ... no arquivo:

compgen -cbka -A function > myfile.txt
    
por 02.05.2014 / 04:44