当我用双引号将目录括起来时,grep 不起作用

pau*_*aul 1 linux grep quoting wildcards

当我做这样的事情时:

grep "hello" /home/paul/*
Run Code Online (Sandbox Code Playgroud)

有用。

但是当我做这样的事情时:

grep "hello" "/home/paul/*"
Run Code Online (Sandbox Code Playgroud)

grep 显示错误:

grep: /home/paul/*: 没有这样的文件或文件

这是为什么?

jes*_*e_b 6

从 bash 参考手册:

用双引号 ('"') 将字符括起来会保留引号内所有字符的字面值,但 '$'、'`'、'\' 和启用历史扩展时的 '!' 除外。

因此,您必须*从引用的字符串中删除特殊字符,以便将其视为通配符。

grep "hello" "/home/paul/"*
Run Code Online (Sandbox Code Playgroud)