在 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 相关内容 删除并安装 Ubuntu 的新副本以重新开始 [重复] 如何向表中添加递归行,直到它们到达 ConTeXt 中页面的末尾? 为什么`sudo su -`仍然尝试执行终结器? 在 Windows 8 中打开第二屏幕上的任务栏自动隐藏功能,但不在主屏幕上自动隐藏 TikZ:声明函数与宏:使用 cm 包括 \documentlass{book} 中的简历 重新启动 Windows? 在 Excel 中将文件路径转换为值 saned.service 已加载:已屏蔽(/dev/null;错误) 活动:未活动(已停止) 共享扫描仪所需 如何更改 chemnum 标签的字体大小和类型?