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

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

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

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

答案1

它与命令本身无关find,它是 shell 的一个功能,称为历史扩展。如果您的 shell 支持历史扩展,您可以参考您过去输入的命令并用它执行一些操作。

例如,在 Bash 中,您的操作是指事件指示符的历史命令。来自bash手册:

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

!

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

!string

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

对于真正的内部结构,您可以阅读源代码get_history_event从 Bash 4.3 开始。

相关内容