Gets the last string of previous command with !$

$mkdir mydir -> mv !$ yourdir -> $cd !$
It helps you save a lot of writing :-)
Sample Output
vi abc.txt -> $cat !$ -> $ls -al !$

By: Bluehive
2009-03-20 09:00:28

These Might Interest You

  • cd - would return to the previous directory of your cd command. NB: previous dir is always stored in $OLDPWD variable. Show Sample Output

    cd -
    chmouel · 2009-02-16 02:37:50 0
  • This is the THIRD in a set of five commands. See my other commands for the previous two. This step creates the oauth 1.0 token as explained in The token is required for a Twitter filtered stream feed (and almost all Twitter API calls) This token is simply an encrypted version of your base string. The encryption key used is your hmac. The last part of the command scans the Base64 token string for '+', '/', and '=' characters and converts them to percentage-hex escape codes. (URI-escapeing). This is also a good example of where the $() syntax of Bash command substitution fails, while the backtick form ` works - the right parenthesis in the case statement causes a syntax error if you try to use the $() syntax here. See my previous two commands step1 and step2 to see how the base string variable $b and hmac variable $hmac are generated.

    step3() { s=$(echo -n $b | openssl dgst -sha1 -hmac $hmac -binary | openssl base64); signature=`for((i=0;i<${#s};i++)); do case ${s:i:1} in +) e %2B;; /) e %2F;; =) e %3D;; *) e ${s:i:1};; esac ; done` ; } ; e() { echo -n $1; }
    nixnax · 2012-03-11 10:44:01 0
  • Sometimes easier to just hit these keys to access previous / next commands in history instead of moving your hands all the way to the cursor keys

    <ctrl+p> for previous command; <ctrl+n> for next command
    maheshjagadeesan · 2012-06-01 11:25:09 0
  • Really useful for when you have a typo in a previous command. Also, arguments default to empty so if you accidentally run: echo "no typozs" you can correct it with ^z

    root · 2009-01-26 13:25:37 9

What Others Think

Interesting, I use ESC UNDERSCORE for the same thing (eg hit the esc ket, hit the "_" key)
mpb · 482 weeks and 3 days ago
To complete mpb's comment, this is M-_ (read meta plus underscore) that is often both "ESC then '_"' and "ALT+'_'".
CodSpirit · 482 weeks and 3 days ago
To complete CodSpirit's comment ... which is Readline's "yank-last-arg" function, which bindings may be queried using "bind -q " ;-) bind -q yank-last-arg yank-last-arg can be invoked via "\e.", "\e_". It was funny for me to see this trick and its "ESC UNDERSCORE" comment, as I always used it's "Meta + ." binding (or "Esc ." if you want), never thought it has another binding too (anyway, I still like "\e." more) :))
altblue · 482 weeks and 3 days ago
thank you every one for sharing your tips! I'll probably be using ESC _ from now on :-)
Bluehive · 482 weeks and 3 days ago
I'm probably missing something but isn't using '!$' style commands as a replacement for grabbing recent commands(as opposed to strings way back in the HIST file) a lot more risky than useing something like + "." to grab recent arguments. I've seen experienced *nix users unintentionaly `rm` important shit using the !(?) method w/out paying attention.
substdio · 220 weeks and 1 day ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this? is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.


Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: