I would like to keep timestamps on the commands logged in my Bash $HISTFILE, is it possible?

I did not manage to set it up using man bash as an information source.

My other options are as follows:

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

I should have mentioned I am on OS X Mountain Lion (sigh). uname -a gives me:

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

and echo $BASH_VERSION gives me:


Tried adding this:

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

and it only prefixes this kind of timestamps to commands:


I try echoing back the variable (echo $HISTTIMEFORMAT), it has the right value.


I even removed .profile completely to debug this. Still only funny timestamps:


I don't know how to further troubleshoot this... :(

Solution: I was using a script that reads the $HISTFILE directly, not the history built-in so the epoch-based timestamp (secs since Coordinated Universal Time (UTC) of January 1, 1970) was not being translated using the date formatting string. Plain-old history works fine, I'll use that instead.

  • 2
    Have you tried setting HISTTIMEFORMAT?
    – jw013
    Oct 1, 2012 at 1:36
  • Probably I am getting the strftime format wrong. It would help if the man page included at least a couple of examples.. +%Y-%m-%d %H-%M-%S ? Oct 1, 2012 at 1:43

1 Answer 1


Yes, put this in ~/.bashrc :


Then, run the following commands :

. ~/.bashrc

It will look like this :

 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

Explanations of the output :

  • first col is the unique id
  • second one is the date, third is the hour
  • latest is your command line
  • 4
    Nope, doesn't work on OSX.. :( Prob that's the issue. A strange OS. Oct 1, 2012 at 1:58
  • Did you source ~/.bashrc ? Oct 1, 2012 at 2:05
  • I most definitely did. It is doing "something": adding a commented line before the command with a numeric timestamp: #1349057149 Oct 1, 2012 at 2:07
  • 1
    @Robottinosino Yes the commented line is the expected format. To display the commands with formatted time, use the history builtin command, don't look at the history file directly.
    – jw013
    Oct 1, 2012 at 3:44
  • 1
    Is it possible to have the time stamp in the history file recorded using HISTTIMEFORMAT? I never use the history command, instead I use a text editor to find commands I'm looking for, and it would be nice to have a human readable date reference.
    – gone
    Jan 22, 2018 at 15:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .