Eu queria saber se existe uma maneira no shell do Linux de digitar a primeira parte exclusiva de um nome de arquivo ou nome de diretório e, em seguida, adicionar "~" ou "..." e evitar escrever o nome do arquivo inteiro.
Por exemplo, se eu tiver quecdpara 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 procurar.
Responder1
A maioria dos shells suporta o que é conhecido como "Tab Completion". Basta digitar a parte exclusiva do nome do arquivo e pressionar a Tabtecla. O shell deve preencher automaticamente o restante do nome do arquivo para você. Se ainda houver vários arquivos que correspondam ao que você digitou até agora, o shell percorrerá os arquivos correspondentes quando você clicar Tabou imprimirá uma lista de todos os arquivos correspondentes quando você clicar duas vezes em Tab, dependendo da configuração. Por padrão, o Bash imprime uma lista quando você toca Tabduas vezes.
Responder2
Você pode usar *
como curinga:
cd example-program*
Observe que isso se expandirá paratodosos arquivos que correspondem 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
Isto pode ser útil se você de fatoquererpara trabalhar em vários arquivos, por exemplo, se quiser mostrar o conteúdo de todos .log
os arquivos em uma pasta:
cat *.log