Después de descubrir lo que esto shopt -s histappend significa , parece una configuración muy sensata, y me sorprende que no sea por defecto. ¿Por qué alguien querría borrar su historial en cada salida de shell?
bash
command-history
tshepang
fuente
fuente

bash"puro" o una distribución suministrada.bashrc. para el primero, @Gilles probablemente sea correcto. en este último sentido,-s histappendestá predeterminado en, por ejemplo, Debian, desde 2008: bugs.debian.org/cgi-bin/bugreport.cgi?bug=452459Respuestas:
Bueno, cuando
histappendno está configurado, esto no significa que el historial se borre en cada salida de shell. Sinhistappendbash lee el archivo histórico al inicio en la memoria, durante la operación, se agregan nuevas entradas, y al salir del shell, las últimas líneas HISTSIZE se escriben en el archivo de historial sin agregar, es decir, reemplazar el contenido anterior.Por ejemplo, si el archivo histórico contiene 400 entradas, durante el tiempo de ejecución de bash se agregan 10 nuevas entradas: histsize se establece en 500, entonces el nuevo archivo histórico contiene 410 entradas.
Este comportamiento solo es problemático si usa más instancias de bash en paralelo. En ese caso, el archivo de historial solo contiene el contenido del último shell existente.
Independientemente de esto: hay algunas personas que quieren borrar su historial en la salida de shell por razones de privacidad.
fuente
histappendsirootla historia llega a un disco? Nuevamente, solo afecta lo que está escrito, no si .histappendasí comoHISTCONTROL=ignoredups:erasedups:ignorespaceparece ser un buen defecto para la mayoría de las personas.histappendefectivo sin sentido si tengoHISTFILESIZE=yHISTSIZE=para una historia infinita?Por compatibilidad histórica, supongo. La
histappendopción no existía hasta bash 2.0.fuente
histappend.