Como evitar escrever nomes completos de arquivos

6

Eu queria saber se existe uma maneira no shell linux para digitar a primeira parte exclusiva de um nome de arquivo ou dirname e, em seguida, adicione "~" ou "..." e evite gravar o nome do arquivo inteiro.

Por exemplo, se eu tiver que cd para o diretório

example-program-source-0.11.229-dev

Em vez de escrever

cd example-program-source-0.11.229-dev

Só para escrever algo assim

cd example-program...

Ou

cd example-program~

Acho que deveria haver algo assim integrado no shell, mas não sei exatamente o que pesquisar.

    
por Itay Grudev 17.08.2012 / 16:19

2 respostas

20

A maioria dos shells suporta o que é conhecido como "Tab Completion". Basta digitar a parte exclusiva do nome do arquivo e, em seguida, pressionar a tecla Tab . O shell deve preencher automaticamente o restante do nome do arquivo para você. Se ainda houver vários arquivos que correspondem ao que você digitou até o momento, o shell irá percorrer os arquivos correspondentes conforme você clica em Tab ou imprimirá uma lista de todos os arquivos correspondentes quando pressione Tab , dependendo da configuração. Por padrão, o Bash imprime uma lista quando você toca em Tab duas vezes.

    
por 17.08.2012 / 16:23
5

Você pode usar * como curinga:

cd example-program*

Observe que isso expandirá para todos os arquivos correspondentes ao curinga. No seu caso, você só poderá usá-lo se houver apenas um caminho começando com example-program . Se houver vários diretórios com o prefixo, o comando será efetivamente expandido para, por exemplo:

cd example-program-source-0.11.229-dev example-program-other example-program.txt

Isso pode ser útil se você de fato quiser trabalhar em vários arquivos, por exemplo, se quiser mostrar o conteúdo de todos os arquivos .log em uma pasta:

cat *.log
    
por 17.08.2012 / 16:30