!find 命令的执行如何工作?

syn*_*gma 2 shell command-history

!find命令允许用户find使用其所有参数执行先前执行的。

它在内部如何工作,这种行为究竟是在哪里编程的?

cuo*_*glm 7

它与find命令本身无关,它是 shell 的一个特性,称为历史扩展。如果你的 shell 支持历史扩展,你可以参考你输入的过去的命令并用它做一些事情。

例如,在 Bash 中,您的操作通过事件指示符引用历史记录中的命令。从Bash 手册

事件指示符是对历史列表中命令行条目的引用。除非引用是绝对的,否则事件是相对于历史列表中的当前位置的。

!

开始历史替换,除非后跟空格、制表符、行尾=(extglob使用shopt内置命令启用 shell 选项时)。

!string

参考历史列表中当前位置之前的最新命令,以字符串开头。

对于真正的内部结构,您可以阅读get_history_eventBash 4.3的源代码。