Is there a way in Bash to recall the argument of the previous command?
I usually do vi file.c followed by gcc file.c.
Is there a w
If the previous command had two arguments, like this
ls a.txt b.txt
and you wanted the first one, you could type
!:1
giving
a.txt
Or if you wanted both, you could type
!:1-2
giving
a.txt b.txt
You can extend this to any number of arguments, eg:
!:10-12
In the command line you can press esc-. or alt+.
It cycles through the last argument of your previous commands.
!!:n where n is the 0-based position of the argument you want.
For example:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
The ! prefix is used to access previous commands.
Other useful commands:
!$ - last argument from previous command!^ - first argument (after the program/built-in/script) from previous command!! - previous command (often pronounced "bang bang")!n - command number n from history!pattern - most recent command matching pattern!!:s/find/replace - last command, substitute find with replaceMore info on command history
Yes, you can use !$ to recall the last argument of the preceding command.
!* runs a new command with all previous arguments.
ls /tmp
cd !*
#you are now in /tmp
You can use $_ or !$ to recall the last argument of the previous command.
Also Alt + . can be used to recall the last argument of any of the previous commands.