Pregunta

Problema: para entender la siguiente marca de tiempo

1241036430

en ~/.history

: 1241036336:0;vim ~/.zshrc
: 1241036379:0;vim ~/bin/HideTopBar
: 1241036421:0;ls
: 1241036430:0;cat ~/.history

cuando tengo

setopt EXTENDED_HISTORY
HISTFILE=~/.history

en .zshrc.

¿Cómo se puede leer la marca de tiempo?

¿Fue útil?

Solución

Este simple util , llamado localtime es oro para leer archivos con marcas de tiempo:

#!/usr/bin/perl
# http://perl.plover.com/classes/mybin/samples/source/localtime

if ($ARGV[0] eq '-f') {
  *show_localtime = \&show_localtime_list;
  shift;
}

if (@ARGV) {
  for (@ARGV) {
    print show_localtime($_), "\n";
  }
} else {
  while (<>) {
    s/^(\d+)/show_localtime($1)/e;
    print;
  }
}


sub show_localtime {
  my $t = shift;
  scalar localtime $t;
}

sub show_localtime_list {
  my $t = shift;
  my @a = localtime $t;
  "@a\n"
}

Maneja muchos casos y parece comprender ambas marcas de tiempo en segundos y mini segundos, etc.

$ localtime < ~/.histfile
<snip>
: Sat Sep 17 05:55:17 2016:0;cat localtime

Otros consejos

Intentar history -d.O simplemente escribe history - y presione control-D para obtener todas las opciones:

% history -
-D  -- print elapsed times
-E  -- dd.mm.yyyy format time-stamps
-d  -- print time-stamps
-f  -- mm/dd/yyyy format time-stamps
-i  -- yyyy-mm-dd format time-stamps
-m  -- treat first argument as a pattern
-n  -- suppress line numbers
-r  -- reverse order of the commands

Puede mostrar todo el historial con marcas de tiempo legibles por humanos usando esta frase extraída de una respuesta en la lista de correo de zsh :

perl -lne 'm#: (\d+):\d+;(.+)# && printf "%s :: %s\n",scalar localtime $1,$2' $HISTFILE

Recomendaría canalizar la salida a un localizador (less por ejemplo) para que sea más legible.

Adendum: también puede usar el comando history para traducir las marcas de tiempo que se encuentran en los archivos de historial guardados:

Las opciones del comando history -d < historyfile según lo explica Nicholas Riley se aplican igualmente a los archivos de historial guardados, por lo que zsh (o cualquiera de las otras opciones) traduce las marcas de tiempo muy bien.

Esto es útil si está usando más de un solo archivo de historial: he configurado <=> para mantener un archivo de historial por pty para evitar mezclar los historiales de los shells que se ejecutan en paralelo en el mismo sistema (ya que generalmente cada ventana / pantalla / ... es particular para una determinada tarea, por lo que las historias que emergen del uso normal terminan siendo temáticas).

: 1241036430:0;cat ~/.history

‘: <beginning time>:<elapsed seconds>;<command>’.

Extendedhistory: ahorra el tiempo en segundos. El tiempo de inicio es desde la época.

fuente: http://zsh.sourceforge.net/Doc/ Release / Options.html # index-EXTENDEDHISTORY

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top