O Zsh armazena linhas de entrada (possivelmente com informações de hora) no arquivo indicado pela variável HISTFILE
. Este deve ser um nome de arquivo absoluto (caso contrário, ele será interpretado em relação a qualquer diretório que esteja atualizado no momento).
O Zsh não possui um valor padrão integrado para HISTFILE
. A distribuição zsh vem com um assistente de configuração para novos usuários que possui o valor ~/.histfile
embutido, então é isso que os usuários zsh obtêm por padrão. Oh-my-zsh vem com HISTFILE=.zhistory
preset. Então parece que você tentou zsh tanto com a configuração padrão como com o oh-my-zsh. Verifique seu .zshrc
(ou as datas do arquivo) para ver qual deles você está usando no momento.
Como o zsh abre o arquivo e, portanto, o que acontece se for um link simbólico depende de várias opções.
- Se uma das opções
append_history
(definido por padrão), < a href="http://zsh.sourceforge.net/Doc/Release/Options.html#index-INC_005fAPPEND_005fHISTORY">inc_append_history
oushare_history
está definido ou quando o histórico é salvo explicitamente comfc -AI
, zsh é anexado ao arquivo existente.
Observe que, mesmo sob essas configurações, o zsh ocasionalmente sobrescreve o arquivo conforme descrito abaixo para reduzi-lo ao tamanho. - Caso contrário, se a opção
hist_save_by_copy
estiver definida (é definida por padrão desde o zsh 5.0, mas não existe no 4.2), o zsh grava um arquivo temporário e o move no lugar quando completo. Nesse caso, se o arquivo de histórico for um link simbólico, o novo arquivo substituirá o link simbólico. - Caso contrário, o zsh sobrescreve o arquivo existente no lugar.
Em vez de apontar zsh para um link simbólico, defina HISTFILE
para onde você quiser que o arquivo de histórico seja.
Quantas linhas de histórico são mantidas são configuradas através das variáveis HISTSIZE
e SAVEHIST
. HISTSIZE
é o número máximo de linhas que são mantidas em uma sessão e SAVEHIST
é o número máximo de linhas que são mantidas no arquivo de histórico.
Para obter algum histórico salvo, você precisa definir HISTFILE
e SAVEHIST
, já que o valor padrão de SAVEHIST
é 0. Você também pode querer aumentar HISTSIZE
(a partir de zsh 5.0 , o padrão é apenas 30).