![当我将目录用双引号引起来时,grep 不起作用](https://linux22.com/image/123330/%E5%BD%93%E6%88%91%E5%B0%86%E7%9B%AE%E5%BD%95%E7%94%A8%E5%8F%8C%E5%BC%95%E5%8F%B7%E5%BC%95%E8%B5%B7%E6%9D%A5%E6%97%B6%EF%BC%8Cgrep%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
当我做这样的事情时:
grep "hello" /home/paul/*
有用。
但是当我做这样的事情时:
grep "hello" "/home/paul/*"
grep
显示错误:
grep: /home/paul/*: 没有这样的文件或目录
这是为什么?
答案1
来自 bash 参考手册:
将字符括在双引号 ('"') 中会保留引号内所有字符的字面值,但 '$'、'`'、'\' 和启用历史扩展时的 '!' 除外。
因此,您必须从引用的字符串中删除特殊字符*
,以便将其视为通配符。
grep "hello" "/home/paul/"*