我试图在 Ubuntu 12.04 中进行字符串搜索,结果如下:
find . -exec grep -l "!45" {} \;
不再搜索字符串“!45”,而是将其替换为top
。它没有调用该命令,而只是开始搜索术语“top”。在我弄清楚-F
for之前grep
,我认为特殊字符会被视为引号之间的文本。
无论如何,既然我发现了这一点,我不知道这是什么,它有什么用,或者它为什么存在!
答案1
在 bash shell 中,!45
从命令历史记录中返回该命令(或!32
或!873
)。
事件指示符是对历史列表中命令行条目的引用。除非引用是绝对的,否则事件是相对于历史列表中的当前位置的。
!
启动历史记录替换,除非后面跟有空格、制表符、行尾、“=”或“(”(当使用内置 shopt 启用 extglob shell 选项时)。
!n
请参阅命令行 n。
检查这里获取 bash 手册的完整详细信息。