Autocomplete de um nome de arquivo no prompt do bash

3

Eu costumo colocar uma data antes de um nome de arquivo ou diretório similar a 2014-04-20 file_name.doc .

Portanto, em uma pasta geralmente há vários arquivos e diretórios que começam com uma data.

Mas ao acessar essas pastas a partir da linha de comando, bash no meu caso, é um pouco irritante, pois tenho que digitar todas as datas e só depois disso acertar a TAB para autocompletar.

O que eu quero é digitar apenas parte do nome do arquivo e depois de pressionar TAB o sistema deve colocar o nome completo no prompt.

Existe alguma solução para isso?

    
por B.I. 09.12.2014 / 09:08

3 respostas

1

Complete um padrão de curinga:

ls *file_n*Tab

Se o padrão corresponder a vários arquivos, você será solicitado a fazer escolhas ou a lista será interpolada na linha de comando, dependendo das opções de conclusão. Se você quiser cancelar isso e digitar mais alguns caracteres para restringir as correspondências, desfaça a conclusão ( Ctrl + _ ).

Se você usar conclusão sensível ao contexto, o Tab não expande curingas por padrão (pode haver uma opção que você pode definir para corrigir isso), mas Ctrl + X * .

    
por 10.12.2014 / 01:03
0

Você pode usar complete para fazer o que quiser (o script de conclusão existente está localizado em /etc/bash_completion.d no debian, após instalar o pacote apropriado)

Você pode verificar o apache2.2 comum para ter um exemplo básico.

link

    
por 09.12.2014 / 12:38
0

Se você usar \eg ( glob-complete-word ), não será necessário digitar o segundo asterisco ou, por exemplo, digitar *file_n\eg em vez de *file_n*<tab> .

Se houver vários arquivos que correspondam ao padrão, você poderá inserir a primeira correspondência com menu-complete ou a última correspondência com menu-complete-backward . Se você por exemplo adicionar

"\et": menu-complete
"\er": menu-complete-backward

para ~/.inputrc , *file_n*\et é concluído para a primeira correspondência e *file_n*\er para a última correspondência.

    
por 13.05.2015 / 14:54