Histórico de bash com timestamps

13

Gostaria de manter os timestamps nos comandos logados no meu Bash $ HISTFILE, é possível?

Eu não consegui configurá-lo usando man bash como fonte de informação.

Minhas outras opções são as seguintes:

function thebanana() {
  local -r -a bash_commands=(
    "ls"
    # ... more coconut commands
  )
  for bash_command in "${bash_commands[@]}"; do
    printf "${bash_command}"
    printf ":"
  done
}
export HISTFILE=banana
export HISTIGNORE="$(thebanana)"
export HISTSIZE=999999
export HISTFILESIZE=999999999
export HISTCONTROL=ignoredups:erasedups

Eu deveria ter mencionado que estou no OS X Mountain Lion (suspiro). uname -a me dá:

Darwin CoconutMac.local 12.2.0 Darwin Kernel Version 12.2.0: Sat Aug 25 00:48:52 PDT 2012; root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64

e echo $BASH_VERSION me dão:

3.2.48(1)-release

Tentei adicionar isto:

export HISTTIMEFORMAT='%b %d %I:%M:%S %p '

e só prefixam este tipo de timestamps para comandos:

#1349057791

Eu tento ecoar a variável ( echo $HISTTIMEFORMAT ), ela tem o valor correto.

Interessante!

Eu até removi .profile completamente para depurar isso. Ainda apenas timestamps engraçados:

#1349058320

Eu não sei mais como resolver isso ...: (

Solução : Eu estava usando um script que lê diretamente o $ HISTFILE, não o histórico embutido para o carimbo de data e hora baseado em época (segs desde o Tempo Universal Coordenado (UTC) de 1º de janeiro de 1970 ) não estava sendo traduzido usando a string de formatação de data. O velho e simples history funciona bem, vou usar isso em vez disso.

    
por Robottinosino 01.10.2012 / 03:04

1 resposta

13

Sim, coloque isso em ~/.bashrc :

export HISTTIMEFORMAT='%F %T '

Em seguida, execute os seguintes comandos:

. ~/.bashrc
history

Será parecido com isto:

 (...)
 5200  2012-09-30 23:55:37 find -printf '%Ts %f\n'
 5201  2012-10-01 00:00:58 ls
 5202  2012-10-01 00:03:45 cd
 (...)

Explicações da saída:

  • primeiro col é o único id
  • o segundo é a data, o terceiro é a hora
  • mais recente é sua linha de comando
por 01.10.2012 / 03:44