Gerar expansão de chaves a partir da lista de arquivos

2

Esta expressão de chave gera uma lista de arquivos:

$ touch {foo{.t,t.t},other.txt,test{,.{ascii,t{est.qt,x{t,xt}}}}} 

$ ls
foo.t foot.t other.txt test test.ascii test.test.qt test.txt test.txxt

É possível converter de volta uma lista de arquivos para uma expansão de chave?

    
por Isaac 11.09.2018 / 14:55

1 resposta

4

Com a lista de arquivos acima, basta pressionar (M- {) em uma linha de comando vazia:

Alt - {

para obter:

$ {foo{.t,t.t},other.txt,test{,.{ascii,t{est.qt,x{t,xt}}}}}

Ou escreva fo e pressione as mesmas teclas para obter:

$ foo{.t,t.t}

Isto é, preencha os arquivos que correspondem à string fo (antes do ponto).

De man bash

complete-into-braces (M-{)
Perform filename completion and insert the list of possible completions enclosed within braces so the list is available to the shell.

    
por 11.09.2018 / 14:55