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:
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.