我正在尝试了解什么是unix命令!$
。
例如,我知道命令!1
用于运行历史命令编号1.
似乎!$
运行在bash中键入的最后一个命令。
例如,如果我写了mv folder12 folder123
然后我会写cd !$
,我实际上会预先形成cd folder123
。
!$
运行bash中输入的最后一个命令是否正确?
答案 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。