【发布时间】:2014-04-21 23:47:05
【问题描述】:
我需要找到(或者更具体地说,计算)所有与此模式匹配的文件:
*/foo/*.doc
第一个通配符星号包含可变数量的子目录。
【问题讨论】:
-
必须是 bash 吗? zsh 可以使用
ls **/foo/*.doc语法来做到这一点。 -
阿拉斯泰尔,感谢您的建议。我不知道 zsh 及其双星号语法。有趣的是,生成的扩展参数列表对于 ls 来说似乎太长(大约 6000 个文件名)并给出了错误。
-
Bash v4 还支持
**递归全局。 -
像
echo这样的内部命令避免了ARG_MAX问题(参数列表太长)。 You should not be usinglsin scripts. -
@tripleee Bash v4 支持
**递归 glob,但您必须首先使用shopt -s globstar。见tiswww.case.edu/php/chet/bash/bashref.html#The-Shopt-Builtin
标签: macos bash command-line