Expansão de Bash para listar a partir de um diretório

0

Eu costumo trabalhar em vários projetos, todos armazenados dentro do meu diretório home (~) dentro de um diretório chamado web .

Em um ponto, todos os meus projetos estavam dentro de um único diretório dentro dele; então, para passar do projeto a para o projeto b:

~ $ cd ../project-b

No entanto, agora eu comecei a categorizar projetos, o que significa que eu teria que inserir

~ $ cd ~/web/project-name

Gostaria de escrever um script de shell ou um alias que eu possa digitar

~ $ command project-name

E mude para ele, com a conclusão da tabulação de modo que proj no acima possa ser concluído para project- . Os projetos podem ser definidos como um arquivo dentro de ~/web , com um retorno a qualquer filho direto desse diretório.

Todo o domínio da conclusão da tabulação está fora da minha área de conhecimento - se isso parece trivial e minha melhor aposta seria ler mais sobre a conclusão da tabulação, por favor, você poderia comentar com um recurso on-line conciso e tentar minha própria solução. É claro que as soluções completas de script também são mais que bem-vindas, assim como os recursos do shell que eu perdi completamente!

    
por M1ke 24.09.2014 / 11:24

1 resposta

0

Você pode criar um link simbólico para o diretório para o qual deseja navegar rapidamente:

ln -s ~/web/project-b ~/web/project-name ~

Isso é muito mais simples do que implementar um script de shell mais um script de conclusão Bash personalizado.

Outra solução fácil que você pode usar sem implementar nada é procurar em seu histórico de Bash: Ctrl - r inicia uma pesquisa de subcadeia, e quando você entra project-name provavelmente já encontrou a entrada. Caso contrário, pressionar Ctrl - r novamente procura a próxima entrada de histórico mais antiga com a mesma subseqüência. Com um simples ajuste de configuração você também pode simplesmente digitar cd e pressione Up para ir para os comandos anteriores, começando com "cd".

    
por 24.09.2014 / 13:33