syn*_*gma 2 shell command-history
该!find命令允许用户find使用其所有参数执行先前执行的。
它在内部如何工作,这种行为究竟是在哪里编程的?
它与find命令本身无关,它是 shell 的一个特性,称为历史扩展。如果你的 shell 支持历史扩展,你可以参考你输入的过去的命令并用它做一些事情。
例如,在 Bash 中,您的操作通过事件指示符引用历史记录中的命令。从Bash 手册:
事件指示符是对历史列表中命令行条目的引用。除非引用是绝对的,否则事件是相对于历史列表中的当前位置的。
!开始历史替换,除非后跟空格、制表符、行尾
=或((extglob使用shopt内置命令启用 shell 选项时)。
!string参考历史列表中当前位置之前的最新命令,以字符串开头。
对于真正的内部结构,您可以阅读get_history_eventBash 4.3的源代码。