Bash – What does the history command !# do

bashcommand historyman

From the manual pages on history:

Event Designators
An event designator is a reference to a command line entry in the his‐
tory list. Unless the reference is absolute, events are relative to
the current position in the history list.

   !      Start a history substitution, except when followed by  a  blank,
          newline, = or (.
   !n     Refer to command line n.
   !-n    Refer to the current command minus n.
   !!     Refer to the previous command.  This is a synonym for `!-1'.
   !string
          Refer  to the most recent command preceding the current position
          in the history list starting with string.
   !?string[?]
          Refer to the most recent command preceding the current  position
          in  the  history  list containing string.  The trailing ? may be
          omitted if string is followed immediately by a newline.
   ^string1^string2^
          Quick substitution.  Repeat the last command, replacing  string1
          with string2.  Equivalent to ``!!:s/string1/string2/'' (see Mod‐
          ifiers below).
   !#     The entire command line typed so far.

All the others make sense, but I can't figure out any usage for !# from the context. What does it do and how is it usually used?

Best Answer

Answer here: What does !#:3 mean in a shell command

Basically, you can use it to shorten a command in combination with ':n', so:

$ cd /home/me/some/super/deep/dir/that/i/do/not/want/to/type/again ; ll !#:2 

Of course this is a bit silly example, because you could just do ll, but you get the idea, it can be used in sh scripts.

Related Question