Você deve definir HISTSIZE=0
para fechar o antigo $HISTFILE
antes de fazer as alterações. Veja man bash
.
Espero que isso faça sentido enquanto explico, por favor, tenha paciência comigo!
Recentemente, decidi que seria uma boa ideia começar a fazer o backup do meu histórico, e fiz isso com o seguinte, adicionado a .bashrc
:
export HISTFILE=~/.history/'date +%Y%m%d'.hist
export HISTSIZE=100000
Não tem problema, parece fazer o que diz que deve fazer.
No entanto, notei hoje (depois do meu primeiro log de volta ao shell desde que o defini) que o meu histórico real como recuperado por history
(ou quando aplicando grepping para patterns dentro), só mostrava meus comandos desde o log in , era como se o backup também tivesse apagado .bash_history
.
Quando inspecionei .bash_history
manualmente com less
, estava tudo lá como eu esperava que fosse.
ou seja, a saída de um tail
para history
é:
wms_joe@Esau:~$ history | tail
48 past dir
49 ll
50 less .bash_history
51 tail .bash_history
52 cp .bash_history history_backup
53 past usearch
54 less ~/.bashrc
55 history
56 tail history
57 history | tail
Mas um tail
para .bash_history dá:
wms_joe@Esau:~$ tail .bash_history
cd prot_all/
ls
find . -type f -name *.txt -print0 | xargs -0 sed -i /XBW1/d
find . -type f -name '*.txt' -print0 | xargs -0 sed -i /XBW1/d
less PAU_03392_out.txt
less ../../PVC_operons/prot_all/PAU_03392_out.txt
past cut
less PAU_03392_out.txt
cut -f3 PAU_03392_out.txt | bc
less PAU_03392_out.txt
E estes são arquivos, etc. Eu sei que estava trabalhando recentemente, e seus IDs de comando devem estar na região de 4000-5000, e não 50 ou mais.
Então, minha pergunta é: como fazer com que history
olhe para a coisa certa de novo? Ou posso de alguma forma mesclar o conteúdo de .bash_history
de volta para o histórico para que seja recuperado pelo comando corretamente? Não sei exatamente o que fiz!
EDIT - pergunta foi colocada em espera como claro, o que exatamente não está claro?
Você deve definir HISTSIZE=0
para fechar o antigo $HISTFILE
antes de fazer as alterações. Veja man bash
.