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?
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?
Respuestas:
Bueno, cuando histappendno está configurado, esto no significa que el historial se borre en cada salida de shell. Sin histappendbash 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.
histappendsi rootla historia llega a un disco? Nuevamente, solo afecta lo que está escrito, no si .
histappendasí como HISTCONTROL=ignoredups:erasedups:ignorespaceparece ser un buen defecto para la mayoría de las personas.
histappendefectivo sin sentido si tengo HISTFILESIZE=y HISTSIZE=para una historia infinita?
Por compatibilidad histórica, supongo. La histappendopción no existía hasta bash 2.0.
histappend.
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=452459