在 zsh 中递归计算目录中与模式匹配的文件数量 2024-6-13 • zsh 如何递归计算某种类型的所有文件zsh? 有很多方法可以做到这一点(有用的超级用户问题,例如这个给出指点),但很少zsh有具体的方法。 接下来我之前的问题-zsh已经向我提供了几种具体的解决方案,因此我将在这里记录它们以防其他人也想这么做。 答案1 特定zsh功能是 zsh globbing;我不完全理解它,但它们有效。 $ a=( **/*.(cpp|h)(.) ); print $#a 将计算以当前目录结尾的所有文件.cpp并.h从当前目录递归计算,然后将结果打印为单个数字。 从这个答案,我还可以使用: $ ls **/*.{cpp,h} | wc -l 那么,具体zsh部分是扩展以匹配以和**/*.{cpp,h}结尾的文件。我还没有找到任何我能理解的(简单)zsh 通配符的综合内容(尽管.cpp.h这解释使用**/*.{a,b}相当好)。 答案2 要正确计算不匹配项:a=( */.(cpp|h)(.N) ); print $#a 为了避免泄漏变量:local -a a; a=( */.(cpp|h)(.N) ); print $#a 相关内容 Biber 不稳定,有时会失控 如何更改必须再次输入密码的时间? 安装 Ubuntu 后 Windows 7 无法启动 自定义子部分计数器 更新至 12.10 后 GUI 损坏 Apache CentOS 服务器非常慢!配置错误? 解决方案 选项菜单变黑,有两个屏幕(SIKULI) 使用 pkgsrc 安装 KDE 时遇到问题 Winbind 忘记我是谁了