On Tue, Apr 18, 2023 at 05:29:43AM +0000, David wrote: > On Tue, 18 Apr 2023 at 04:42, David Wright <deb...@lionunicorn.co.uk> wrote: > > > There is an option to timestamp entries in the history file. I've > > never used it, nor heard of its being used. That might disambiguate > > things if you ever suspect it might happen again. > > Hi, on my machines I use Bash as interactive > shell, with: > HISTTIMEFORMAT=: %Y%m%d_%H%M%S ; > > That provides a couple of benefits: > > 1) it writes a commented Unix timestamp with > each addition to the ~/.bash_history file, so that > the history file not only logs what commands were > run interactively, but also when. > > 2) when I run the 'history' command, the outpt > is formatted like this: > 501 : 20230418_151124 ; help history > 502 : 20230418_151406 ; env > 503 : 20230418_151749 ; history > The colon and semicolon allow the timestamp > to function as a no-operation command.
At least in bash, this doesn't seem necessary, as you are only seeing an external representation: internally, bash keeps the timestamp separate (as happens to the seq number, too). In the external file, the timestamps are kept as #-comments in separate lines (with the UNIX timestamps in them). > That means that history expansion > can still function, for example entering !502 > interactively will run line number 502, but > only the 'env' that comes after the semicolon > will have any effect. I tried it out, and this also works with a "naked" timestamp, without the : ... ; wrapping. Caveat: I only tried with bash. Cheers -- t
signature.asc
Description: PGP signature