如果没有读取权限,Grep 将无法工作

如果没有读取权限,Grep 将无法工作

我位于一个文件夹中,但是我对其中的内容没有读取权限。

ls -l

成功列出所有文件。

我想计算名称中具有某些属性的文件:

ls -l | grep file????.tar.gz | wc -l

上面的命令生成了很多权限被拒绝的消息,最后我没有得到答复。

为什么会发生这种情况?有解决方法吗?

编辑:按照 Josip Rodin 的建议,结果发现我搞错了使用错误的通配符。执行:

ls -l | grep -e "file....\.tar.gz" | wc -l

效果很好

答案1

您使用该字符?的意思是希望它表示单字母通配符。然而,这是所谓的“glob”模式语法,由执行这些命令的 shell 使用/扩展。

这可能会导致 shell 尝试查找它没有权限的内容。(如果您提供此类错误消息的示例,将会很有帮助。)

要在 grep 中实际执行单字母通配符匹配,请使用 grep 支持的“正则表达式”语法,其中单字母通配符是点 ( .)。

相关内容