在 bash 中,如何运行最后一个包含字符串的命令?

在 bash 中,如何运行最后一个包含字符串的命令?

我正在使用 bash shell。通常,如果我想重复以某个字符串开头的最后一个命令,我可以运行

$ !cat

如果我想运行最后一个包含字符串的命令怎么办?也就是说,如果我输入命令

$ cat dave.txt

我想用“dave”运行最后一个命令,这恰好是上面的命令,是否有快捷方式可以允许这样做?

答案1

使用?事件指示符:

!?dave

man bash

?细绳[?]

参考包含 的历史列表中当前位置之前的最新命令 string。如果紧随其后的是换行符,则?可以省略尾部。string

但我发现从历史记录中调用随机命令很危险 - 如果我在不同的终端/目录中并且不小心删除了某些内容怎么办?Ctrl + R更安全、更灵活。

相关内容