Mic*_*zek 26
Bash 将此称为快速替换。它位于 Bash 手册页的“历史扩展”部分,在“事件指示符”部分(在线手册)下:
^string1^string2^快速替代。重复前面的命令,用 string2 替换 string1。相当于
!!:s/string1/string2/
所以^foo^bar会运行之前执行的命令,但用 替换第一次出现foo的bar。
请注意,对于s/old/new/bash 手册页,“如果它是事件行的最后一个字符,则最终分隔符是可选的。” 这就是为什么您可以使用^foo^bar并且不需要使用^foo^bar^.
(请参阅此答案以了解其他一些指示符,尽管我没有在那里提及此指示符)。
Tim*_*iam 15
^foo^bar执行最后一个命令,替换的第一个实例foo用bar。例如:
$ ech "hello"
-bash: ech: command not found
$ ^ech^echo
echo "hello"
hello
Run Code Online (Sandbox Code Playgroud)