我知道有一个!!
命令可以重用以前的命令。如何重用上一个命令中指定的文件或目录,但对其使用不同的命令?
示例:我想查看文件的内容,并在必要时将其删除。就像是:
$ cat example.txt
"output indicates deletion"
$ rm !!
答案1
$ echo foo
foo
$ bar !!:$
bar foo
The program 'bar' is currently not installed...
答案2
您可以使用:
rm
Esc.- 键入rm
后跟Space,然后按Esc后跟.(不同时)。如果前一个命令没有参数,您将获得前一个命令本身。rm
Alt+ .- 键入rm
,然后Space按Alt和.(同时)。事实上,使用这种方式并继续按下.(无需释放Alt),您将从历史记录中获得每个命令的最后一个参数。如果命令没有参数,您将获得命令本身。rm !*
- 在这种情况下,您将从之前的命令中获取所有参数。如果前面的命令没有参数,你将什么也得不到。
一般来说:<command>
Esc.或<command>
Alt+.或<command> !*
。
来源:使用上一个命令的参数运行命令。
答案3
所有这些都将实现您想要的:
rm !$
表示!$
最后一个命令的最后一个参数。
rm!:1
!:1
表示最后一个命令的参数 1,其中命令本身是参数 0。您可以通过这种方式从最后一个命令中挑选出各个参数。
^cat^rm^
将字符串替换cat
为上一个命令中的字符串rm
并运行结果。^
在这个简单的例子中,你实际上可以省略最后一个。
rm !*
这运行rm
于全部最后一个命令中的非命令参数。所以参数从 1 到$
.如果最后一个命令有多个参数,则此变体和最后一个变体非常有用。