Eu tenho um script em uma pasta que eu uso com argumentos longos. Existe alguma chance de eu ter um histórico dos comandos executados nesse diretório específico, em vez de voltar ao histórico inteiro?
bash
directory
command-history
Faber
fonte
fonte
history | less
possivelmente? Realmente não responde à sua pergunta, mas é aí que eu começaria.Respostas:
Ao conectar-se ao PROMPT_COMMAND do bash, essa função é executada toda vez que você recebe um novo prompt, portanto, é um momento decente para verificar se você está em um diretório para o qual deseja um histórico personalizado. A função possui quatro ramos principais:
$PWD
) não mudou, não faça nada (retorne).Se o PWD foi alterado, configuramos uma função local cujo único objetivo é fatorar o código do "diretório personalizado" em um único local. Você deseja substituir meus diretórios de teste pelos seus (separados por
|
).Como alteramos os diretórios, atualize a variável "diretório anterior", salve o histórico da memória no HISTFILE e limpe o histórico da memória.
Se tivermos mudado para um diretório personalizado, defina HISTFILE como um
.bash_history
arquivo no diretório atual.Caso contrário, mudamos de um diretório personalizado, portanto, redefina o HISTFILE para o diretório padrão.
Por fim, como alteramos os arquivos de histórico, leia novamente no histórico anterior.
Para fazer as coisas funcionarem, o script define o valor PROMPT_COMMAND e salva duas variáveis de uso interno (o estoque HISTFILE e o "diretório anterior").
fonte
A resposta de Jeff é ótima se você quiser o histórico para um único diretório, mas se estiver bem com a instalação do zsh, poderá usar o diretório per-history para obter um histórico específico ao diretório para todos os diretórios.
Você pode instalar o zsh:
Como alternativa, se você deseja instalar o oh-my-zsh , você pode adicionar o plug- in histdb e escrever uma consulta personalizada para consultar o banco de dados sqlite que o histdb adiciona. Eu escrevi sobre isso e adicionei conclusões automáticas em uma postagem de Dev Diaries . Verifique a seção de comandos de bônus .
A consulta fica assim
Isso também aceita um limite opcional:
por exemplo.
fonte
Quando preciso usar um comando com argumentos longos várias vezes, geralmente crio um alias no meu
~/.bash_aliases
ou você pode colocá-lo no seu,~/.bashrc
se preferir. É fácil e economiza tempo; procure comandos antigos no histórico.fonte