Question

Problème: pour comprendre l'horodatage suivant

1241036430

à ~ / .history

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

quand j'ai

setopt EXTENDED_HISTORY
HISTFILE=~/.history

dans .zshrc.

Comment pouvez-vous lire l'horodatage?

Était-ce utile?

La solution

Ce simple util , appelé localtime est un atout pour la lecture. fichiers avec horodatage:

#!/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"
}

Il gère de nombreux cas et semble comprendre les deux horodatages en secondes et mini-secondes, etc.

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

Autres conseils

Essayez history -d. Ou tapez simplement history - et appuyez sur Ctrl-D pour obtenir toutes les options:

% 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

Vous pouvez afficher l'historique complet avec des horodatages lisibles par l'homme à l'aide de cette ligne unique extraite de une réponse sur la liste de diffusion zsh :

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

Je recommanderais de rediriger la sortie vers un pager (less par exemple) pour la rendre plus lisible.

Adendum: vous pouvez également utiliser la commande history pour traduire les horodatages trouvés dans les fichiers d’historique enregistrés:

Les options de la commande history -d < historyfile décrites par Nicholas Riley s’appliquent tout aussi bien aux fichiers d’historique enregistrés. Par conséquent, zsh (ou l’une des autres options) traduit parfaitement les horodatages.

Cela est pratique si vous utilisez plusieurs fichiers d'historique. J'ai configuré <=> pour conserver un fichier d'historique par pty afin d'éviter de mélanger les historiques de shells s'exécutant en parallèle sur le même système (car d'habitude chaque fenêtre / écran / ... est spécifique à une tâche donnée, ainsi les histoires issues de l'utilisation normale sont classées par thème).

: 1241036430:0;cat ~/.history

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

extendedhistory - enregistre le temps en secondes. Le temps de début est depuis l’époque.

source: http://zsh.sourceforge.net/Doc/ Version / Options.html # index-EXTENDEDHISTORY

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top