Borrar el historial de bash excepto las últimas n líneas

Borrar el historial de bash excepto las últimas n líneas

Tengo el siguiente comando para borrar la última entrada del historial de bash (historial de terminal/historial de línea de comandos). Mi Ubuntu 14.04 Trusty Tahr.

sed -i '$d' ~/.bash_history

Pero quiero conservar las últimas 1,2...nentradas y eliminar el resto, ¿cómo puedo lograrlo?

Puede ser con sed// o historycualquier awkotro comando, no hay problema en cuanto se cumplan los requisitos.

Respuesta1

Si desea conservar las últimas N líneas, utilice tail(por ejemplo, las últimas 20 líneas):

tail -n 20 "$HISTFILE" > ff && mv ff "$HISTFILE"

Estoy usando la HISTFILEvariable ya que siempre apuntará a su archivo de historial, incluso si ha cambiado su nombre.

información relacionada