Você pode combinar o histórico existente do Bash e os recursos de pesquisa de histórico. Pressione Ctrl-Rpara iniciar a pesquisa reversa incremental e comece a digitar a parte do caminho que provavelmente será única.
Você pode continuar digitando as letras até retornar ao cd
comando mais recente envolvendo esse diretório ou pressionar Ctrl-Rnovamente para voltar ao histórico para o próximo comando mais recente correspondente ao que você digitou até agora.
Eu faço isso toda hora.
Na verdade, eu dou um passo adiante. Uma vez que eu começar a descobrir sequências de comandos vale a pena manter na história, mas não vale a pena se comprometer com um script shell, eu começo a acorrentar-los com &&
e ;
combinadores para que eu possa inverter-procurar uma substring de que um comando longo, hit Entere executar toda a sequência em uma vez.
Por exemplo, veja como eu construo e executo um dos meus programas durante o desenvolvimento:
$ ( cd .. ; make install ) && ./start_my_program
Eu faço isso no diretório de instalação, que fica abaixo do diretório de origem de nível superior. Ao envolver cd
, compilar e instalar a parte em um sub-shell, garanto que não importa o que aconteça durante esse processo, eu retorne ao meu shell normal sem que nada seja alterado. Somente se tiver êxito (&&) eu inicio o programa construído e instalado. Eu posso encontrar isso na minha história com apenas um Ctrl-Rmomento sta, sendo tudo o que geralmente preciso para encontrar exclusivamente essa sequência de comandos.
Outro exemplo de como eu uso isso é a sequência que cria os RPMs para esse mesmo programa. A maior parte do trabalho tedioso está em scripts de shell, mas ainda existem alguns comandos que eu normalmente teria que digitar para fazer todo o trabalho de construção e implantação dos RPMs construídos, que agora raramente preciso digitar novamente, porque o Bash mantém na história para mim.
Combine tudo isso com export HISTSIZE=bignum
e shopt histappend
e você acabou de construir uma memória de comando elephantine.
Outra solução que eu codifiquei uma vez está na minha resposta a outra pergunta aqui . Pode ter que ser personalizado para seus propósitos, e apenas lida com cd
comandos, enquanto a opção de pesquisa de histórico funciona em qualquer lugar e para cada comando.