我位于一个文件夹中,但是我对其中的内容没有读取权限。
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 支持的“正则表达式”语法,其中单字母通配符是点 ( .
)。