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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.