O que é Alt + Shift + {?

10

Testei isso no CentOS e no Ubuntu, se você estiver em um diretório com uma tonelada de arquivos

$ ls
day1.tar.gz  day2.tar.gz  day3.tar.gz  day4.tar.gz  day5.tar.gz  day6.tar.gz  day7.tar.gz  day8.tar.gz day9.tar.gz day10.tar.gz

E você atingiu Alt+Shift+{ e vai completar todos os nomes de arquivo

<Alt+Shift+{>

conclui para:

 day{1{0.tar.gz,.tar.gz},2.tar.gz,3.tar.gz,4.tar.gz,5.tar.gz,6.tar.gz,7.tar.gz,8.tar.gz,9.tar.gz}

e

day1<Alt+Shift+{>

conclui para:

day1{0.tar.gz,.tar.gz}

Perguntas : O que é isso? Como isso é chamado? Onde é útil? Como posso configurá-lo? Posso fazer isso com arquivos que terminam com uma substring que não comece com um?

    
por Mikhail 21.02.2011 / 21:08

1 resposta

9

No Bash, ele executa a função readline complete-into-braces .

A expansão de chave é uma forma útil de abreviar uma referência a vários arquivos.

Por exemplo:

ls -l /path/to/dir/*.{c,h}

lista todos os arquivos que terminam em ".c" ou ".h".

De man bash :

complete-into-braces (M-{)
Perform filename completion and insert the list of possible com‐ pletions enclosed within braces so the list is available to the shell (see Brace Expansion above).

e

Brace Expansion
Brace expansion is a mechanism by which arbitrary strings may be generated. This mechanism is similar to pathname expansion, but the filenames generated need not exist. Patterns to be brace expanded take the form of an optional preamble, followed by either a series of comma-separated strings or a sequence expression between a pair of braces, followed by an optional postscript. The preamble is prefixed to each string contained within the braces, and the postscript is then appended to each resulting string, expanding left to right.

Brace expansions may be nested. The results of each expanded string are not sorted; left to right order is preserved. For example, a{d,c,b}e expands into 'ade ace abe'.

Conclusão, por definição, conclui para funcionar com arquivos que iniciam com uma string.

    
por 21.02.2011 / 21:22