Por que alguém não configuraria 'histappend' no bash?

29

Depois de descobrir o que este shopt -s histappend significa , parece um ajuste muito sadio, e eu estou surpreendido que não é padrão. Por que alguém iria querer limpar seu histórico em cada saída da shell?

    
por Tshepang 26.01.2011 / 20:12

2 respostas

28

Bem, quando histappend não está definido, isso não significa que o histórico seja apagado em cada saída do shell. Sem histappend bash lê o histfile na inicialização na memória - durante a operação, novas entradas são adicionadas - e no shell, as últimas linhas HISTSIZE são gravadas no arquivo de histórico sem anexar, ou seja, substituir o conteúdo anterior.

Por exemplo, se o histfile contiver 400 entradas, durante o bash runtime 10 novas entradas serão adicionadas - o histsize é definido como 500, então o novo histfile conterá 410 entradas.

Esse comportamento é problemático apenas se você usar mais instâncias do bash em paralelo. Nesse caso, o arquivo de histórico contém apenas o conteúdo do último shell existente.

Independente disso: algumas pessoas querem limpar seu histórico na saída da shell por motivos de privacidade.

    
por 26.01.2011 / 21:44
8

Para compatibilidade histórica, eu acho. A opção histappend não existia até o bash 2.0.

    
por 26.01.2011 / 20:57