When using the C shell, I use !$
so
much that it's almost a single character to me.
It means "take the last thing on the previous command line."
It works on bash
too.
Since most UNIX commands have the filename last, you often need to type
filenames only once, and then you can use !$
in subsequent lines.
Here are some examples of where it comes in handy:
I get a lot of
tar
archives (19.5
)
that are
compressed (24.7
)
.
To unpack them, I do the following:
% gunzip groff.1.05.tar
% tar xvf !$
tar xvf groff.1.05.tar
The same trick can be used for
uuencoded shar
files (19.2
)
.
It's also good when you've edited a file with vi
, and then
want to check its spelling:
% vi fred.letter.txt
% spell !$
spell fred.letter.txt
You often want to move a file to another directory and then
cd
to that directory.
The !$
sequence can also be used to refer to a directory:
% mv grmacs.tar /usr/lib/tmac
% cd !$
cd /usr/lib/tmac