Is there any way to exclude commands like rm -rf, svn revert from being getting stored in bash history? Actually I, by mistake, have issued them a number of times even though I have no intent to do, just because I am doing things quickly and it happened. Hence results in lost of lots of work I have did so far.


You might want $HISTIGNORE: "A colon-separated list of patterns used to decide which command lines should be saved on the history list." This line in your ~/.bashrc should do the job:

HISTIGNORE='rm *:svn revert*'

Also, you can add a space at the beginning of a command to exclude it from history. This works as long as $HISTCONTROL contains ignorespace or ignoreboth, which is default on any distro I've used.

  • 5
    space is how I've always done it. – Rob Feb 23 '12 at 15:31
  • I used to accidentally enter additional y, after all cp (aliased to cp -i) get over. So I aliased y as alias y='$(history | awk '"'"'END{if(NF==2 && $2=="y"){print "history -d " $1}}'"'"')' ... But HISTIGNORE is better method as it looks. :) Thanks. – anishsane Nov 22 '13 at 13:02
  • 2
    Just to be more explicit: you can add export HISTCONTROL="ignorespace" to your ~/.bashrc to ignore commands that start with spaces. – Aidan Feldman Jun 12 '16 at 2:20
  • @AidanFeldman not default on macOS – akauppi Oct 12 '17 at 16:28
  • NOTE: space should be included when we type in the commandline and not in HISTIGNORE. – Gayan Weerakutti Mar 27 '18 at 5:58

Though going slightly different from OP's question, when I intentionally don't want a command to get stored in bash history, I prefix them with a space. Works in Ubuntu and its variants, not sure if it works on all systems.

  • 7
    Depends on $HISTCONTROL (see my answer). – l0b0 Feb 29 '12 at 9:48
  • @l0b0 right, thanks for pointing out. – k4rtik Feb 29 '12 at 14:38

I usually kill my bash-instance when I have done things that I don't want in the history.

kill -9 $$

$$ represents the current process - bash when you run it from the shell. You can use $BASHPID, but that's more typing :-)

  • 2
    Some Bash settings (like this) will save the history after each command, and in that case this won't work. – l0b0 Feb 23 '12 at 15:41
  • 1
    I used to do this. but setting HISTFILE=/dev/null is a better option. – anishsane Nov 22 '13 at 12:54
  • simply HISTFILE= works in both bash and ksh. – kubanczyk Apr 8 '16 at 18:45
  • or unset HISTFILE – Todd Walton Nov 29 '18 at 16:35

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.