How can I recall the argument of the previous bash command?

前端 未结 7 1904
轮回少年
轮回少年 2020-12-04 04:33

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

相关标签:
7条回答
  • 2020-12-04 04:51

    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
    
    0 讨论(0)
  • 2020-12-04 04:57

    In the command line you can press esc-. or alt+.

    It cycles through the last argument of your previous commands.

    0 讨论(0)
  • 2020-12-04 04:59

    !!: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 replace

    More info on command history

    0 讨论(0)
  • 2020-12-04 05:03

    Yes, you can use !$ to recall the last argument of the preceding command.

    0 讨论(0)
  • 2020-12-04 05:04

    !* runs a new command with all previous arguments.

    ls /tmp
    cd !*
    #you are now in /tmp
    
    0 讨论(0)
  • 2020-12-04 05:05

    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.

    0 讨论(0)
提交回复
热议问题