什么是bash中的unix历史命令“!$”?

时间:2015-04-20 19:09:16

标签: linux bash shell unix command-line

我正在尝试了解什么是unix命令!$

例如,我知道命令!1用于运行历史命令编号1.

似乎!$运行在bash中键入的最后一个命令。

例如,如果我写了mv folder12 folder123然后我会写cd !$,我实际上会预先形成cd folder123

!$运行bash中输入的最后一个命令是否正确?

1 个答案:

答案 0 :(得分:5)

!$匹配上一个命令的最后一个参数。

来自man bash

  

yank-last-arg(M-。,M -_)

     

将最后一个参数插入上一个命令(最后一个单词)   以前的历史条目)。有了论证,表现得很准确   像yank-nth-arg。连续打电话给yank-last-arg后退   通过历史列表,插入每行的最后一个参数   转。 历史扩展设施用于提取最后一个   参数,好像已经指定了“!$”历史扩展。

实施例

$ vi a
$ ls -l !$ # expands to "ls -l a"
-rw-rw-r-- 1 me me 30 18 abr.  22:00 a

另见What is your single most favorite command-line trick using Bash?

  

我是!$,!^和!* expandos的粉丝,从最多回来   最近提交的命令行:最后一项,第一个非命令项,   和所有非命令项目。为此(注意shell打印出来的   命令第一)。

还有一个很好的阅读:The Definitive Guide to Bash Command Line History