Você não menciona o seu shell - isso é realmente dependente do shell.
Na maioria dos shells, você pode fazer aliases e funções. Isso pode reduzir muito a sua digitação para comandos repetidos ou subconjuntos repetidos de comandos.
aliases são melhores para comandos repetidos. funções podem receber argumentos, então são mais poderosas para quando você tem cópias semelhantes, mas não exatas de comandos.
Pessoalmente, eu também configuro bash-completions para coisas como esta. Por exemplo, eu tenho um subdiretório que possui diretórios de todos os meus projetos de trabalho. Eu tenho conclusões para várias ações nos projetos (verifique se os arquivos estão com check-out para o projeto, crie um pacote de instalação, etc.)
Para conclusão do bash. Você escreve uma função que pode examinar o argumento atual, o argumento anterior e a linha de comando e descobrir o que faz sentido no contexto atual. Em seguida, você anexa essa função ao comando desejado com o complete
bash embutido.
'O que faz sentido no contexto atual' pode ser qualquer coisa - pode ser diretórios, arquivos, outros argumentos. nada mesmo. Verifique os exemplos no pacote bash-completions para ver alguns exemplos.
O código de conclusão do bash foi emprestado do zsh, então se você tiver zsh, poderá usá-lo também. Na verdade, o código de conclusão do bash foi emprestado cedo do zsh, e o zsh expandiu depois disso, então a conclusão do zsh é possivelmente mais poderosa.